aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/eth-balance.js
blob: 2f6395a2daa927ec89b8a42c51168a5c3eeb6df6 (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
const { Component } = require('react')
const h = require('react-hyperscript')
const connect = require('react-redux').connect
const { inherits } = require('util')
const {
  formatBalance,
  generateBalanceObject,
} = require('../util')
const Tooltip = require('./tooltip.js')
const FiatValue = require('./fiat-value.js')

module.exports = connect(mapStateToProps)(EthBalanceComponent)
function mapStateToProps (state) {
  return {
    ticker: state.metamask.ticker,
  }
}

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

EthBalanceComponent.prototype.render = function () {
  const props = this.props
  const { ticker, value, style, width, needsParse = true } = props

  const formattedValue = value ? formatBalance(value, 6, needsParse, ticker) : '...'

  return (

    h('.ether-balance.ether-balance-amount', {
      style,
    }, [
      h('div', {
        style: {
          display: 'inline',
          width,
        },
      }, this.renderBalance(formattedValue)),
    ])

  )
}
EthBalanceComponent.prototype.renderBalance = function (value) {
  if (value === 'None') return value
  if (value === '...') return value

  const {
    conversionRate,
    shorten,
    incoming,
    currentCurrency,
    hideTooltip,
    styleOveride = {},
    showFiat = true,
  } = this.props
  const { fontSize, color, fontFamily, lineHeight } = styleOveride

  const { shortBalance, balance, label } = generateBalanceObject(value, shorten ? 1 : 3)
  const balanceToRender = shorten ? shortBalance : balance

  const [ethNumber, ethSuffix] = value.split(' ')
  const containerProps = hideTooltip ? {} : {
    position: 'bottom',
    title: `${ethNumber} ${ethSuffix}`,
  }

  return (
    h(hideTooltip ? 'div' : Tooltip,
      containerProps,
      h('div.flex-column', [
        h('.flex-row', {
          style: {
            alignItems: 'flex-end',
            lineHeight: lineHeight || '13px',
            fontFamily: fontFamily || 'Montserrat Light',
            textRendering: 'geometricPrecision',
          },
        }, [
          h('div', {
            style: {
              width: '100%',
              textAlign: 'right',
              fontSize: fontSize || 'inherit',
              color: color || 'inherit',
            },
          }, incoming ? `+${balanceToRender}` : balanceToRender),
          h('div', {
            style: {
              color: color || '#AEAEAE',
              fontSize: fontSize || '12px',
              marginLeft: '5px',
            },
          }, label),
        ]),

        showFiat ? h(FiatValue, { value: this.props.value, conversionRate, currentCurrency }) : null,
      ])
    )
  )
}