aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/send/account-list-item.js
blob: 1ad3f69c1f502145df88277b16be586a75b13303 (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
68
69
70
71
72
73
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 {
    className,
    account,
    handleClick,
    icon = null,
    conversionRate,
    currentCurrency,
    displayBalance = true,
    displayAddress = false,
  } = this.props

  const { name, address, balance } = account || {}

  return h('div.account-list-item', {
    className,
    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 || address),

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

    ]),

    displayAddress && name && h('div.account-list-item__account-address', address),

    displayBalance && 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),

  ])
}