aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/send/send-content/send-from-row/send-from-row.container.js
blob: 7008bbea42e3e0c99a1ecd50aadb8717bca5966d (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
import { connect } from 'react-redux'
import {
    accountsWithSendEtherInfoSelector,
    getConversionRate,
    getSelectedTokenContract,
    getSendFromObject,
} from '../../send.selectors.js'
import {
  getFromDropdownOpen,
} from './send-from-row.selectors.js'
import { calcTokenBalance } from '../../send.utils.js'
import {
  updateSendFrom,
  setSendTokenBalance,
} from '../../../../actions'
import {
    closeFromDropdown,
    openFromDropdown,
} from '../../../../ducks/send.duck'
import SendFromRow from './send-from-row.component'

export default connect(mapStateToProps, mapDispatchToProps)(SendFromRow)

function mapStateToProps (state) {
  return {
    conversionRate: getConversionRate(state),
    from: getSendFromObject(state),
    fromAccounts: accountsWithSendEtherInfoSelector(state),
    fromDropdownOpen: getFromDropdownOpen(state),
    tokenContract: getSelectedTokenContract(state),
  }
}

function mapDispatchToProps (dispatch) {
  return {
    closeFromDropdown: () => dispatch(closeFromDropdown()),
    openFromDropdown: () => dispatch(openFromDropdown()),
    updateSendFrom: newFrom => dispatch(updateSendFrom(newFrom)),
    setSendTokenBalance: (usersToken, selectedToken) => {
      if (!usersToken) return

      const tokenBalance = calcTokenBalance({ usersToken, selectedToken })
      dispatch(setSendTokenBalance(tokenBalance))
    },
  }
}