1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 01:39:44 +01:00

Add copy address button to account list

This commit is contained in:
Dan Finlay 2016-05-23 15:31:11 -07:00
parent 45916175d7
commit adaf1c7012
3 changed files with 52 additions and 6 deletions

View File

@ -1,6 +1,12 @@
const Component = require('react').Component const Component = require('react').Component
const h = require('react-hyperscript') const h = require('react-hyperscript')
const inherits = require('util').inherits const inherits = require('util').inherits
const ethUtil = require('ethereumjs-util')
const EtherBalance = require('../components/eth-balance')
const addressSummary = require('../util').addressSummary
const copyToClipboard = require('copy-to-clipboard')
const Identicon = require('../components/identicon')
module.exports = NewComponent module.exports = NewComponent
@ -11,9 +17,47 @@ function NewComponent() {
} }
NewComponent.prototype.render = function() { NewComponent.prototype.render = function() {
var state = this.props const identity = this.props.identity
var mayBeFauceting = identity.mayBeFauceting
var isSelected = this.props.selectedAddress === identity.address
var account = this.props.accounts[identity.address]
var isFauceting = mayBeFauceting && account.balance === '0x0'
const selectedClass = isSelected ? '.selected' : ''
return ( return (
h('span', 'Placeholder component') h(`.accounts-list-option.flex-row.flex-space-between.pointer.hover-white${selectedClass}`, {
key: `account-panel-${identity.address}`,
style: {
flex: '1 0 auto',
},
onClick: (event) => this.props.onShowDetail(identity.address, event),
}, [
h('.identicon-wrapper.flex-column.flex-center.select-none', [
h(Identicon, {
address: identity.address
}),
]),
// account address, balance
h('.identity-data.flex-column.flex-justify-center.flex-grow.select-none', [
h('span', identity.name),
h('span.font-small', addressSummary(identity.address)),
h(EtherBalance, {
value: account.balance,
}),
]),
h('.identity-copy.flex-column', [
h('i.fa.fa-clipboard.fa-md.cursor-pointer.color-orange', {
onClick: (event) => {
event.stopPropagation()
event.preventDefault()
copyToClipboard(ethUtil.toChecksumAddress(identity.address))
}
}),
])
])
) )
} }

View File

@ -3,12 +3,8 @@ const Component = require('react').Component
const h = require('react-hyperscript') const h = require('react-hyperscript')
const connect = require('react-redux').connect const connect = require('react-redux').connect
const extend = require('xtend') const extend = require('xtend')
const Identicon = require('../components/identicon')
const actions = require('../actions') const actions = require('../actions')
const EtherBalance = require('../components/eth-balance')
const valuesFor = require('../util').valuesFor const valuesFor = require('../util').valuesFor
const addressSummary = require('../util').addressSummary
const formatBalance = require('../util').formatBalance
const findDOMNode = require('react-dom').findDOMNode const findDOMNode = require('react-dom').findDOMNode
const AccountPanel = require('./account-panel') const AccountPanel = require('./account-panel')
@ -67,6 +63,7 @@ AccountsScreen.prototype.render = function() {
[ [
identityList.map((identity) => { identityList.map((identity) => {
return h(AccountPanel, { return h(AccountPanel, {
key: `acct-panel-${identity.address}`,
identity, identity,
selectedAddress: this.props.selectedAddress, selectedAddress: this.props.selectedAddress,
accounts: this.props.accounts, accounts: this.props.accounts,

View File

@ -319,6 +319,11 @@ input.large-input {
height: 100%; height: 100%;
} }
.identity-copy.flex-column {
flex: 0.25 0 auto;
justify-content: center;
}
/* accounts screen */ /* accounts screen */
.identity-section { .identity-section {