aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/send/account-list-item.js
blob: 0938f4cad1dcd21e9d8c56967ba00accc3d88e82 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
const connect = require('react-redux').connect
const Identicon = require('../identicon')
const CurrencyDisplay = require('./currency-display')
const { conversionRateSelector, getCurrentCurrency } = require('../../selectors')

inherits(AccountListItem, Component)
function AccountListItem () {
  Component.call(this)
}

function mapStateToProps(state) {
  return {
    conversionRate: conversionRateSelector(state),
    currentCurrency: getCurrentCurrency(state),
  }
}

module.exports = connect(mapStateToProps)(AccountListItem)

AccountListItem.prototype.render = function () {
  const {
    account, 
    handleClick, 
    icon = null,
    conversionRate,
    currentCurrency,
  } = this.props

  const { name, address, balance } = account

  return h('div.account-list-item', {
    onClick: () => handleClick({ name, address, balance }),
  }, [

    h('div.account-list-item__top-row', {}, [

      h(
        Identicon,
        {
          address,
          diameter: 18,
          className: 'account-list-item__identicon',
        },
      ),

      h('div.account-list-item__account-name', {}, name),

      icon && h('div.account-list-item__icon', [icon]),

    ]),

    h(CurrencyDisplay, {
      primaryCurrency: 'ETH',
      convertedCurrency: currentCurrency,
      value: balance,
      conversionRate,
      readOnly: true,
      className: 'account-list-item__account-balances',
      primaryBalanceClassName: 'account-list-item__account-primary-balance',
      convertedBalanceClassName: 'account-list-item__account-secondary-balance',
    }, name),

  ])
}