diff options
author | kumavis <aaron@kumavis.me> | 2018-06-14 12:11:04 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2018-06-14 12:11:04 +0800 |
commit | e9cb6508324c166a2d6efe53cf82c39abd4520b4 (patch) | |
tree | da584d964cf84470250f242923967afa7b6a4822 /ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js | |
parent | 691ac5d288963f376e34c1711e23bbd58432396f (diff) | |
parent | 66c77dc2bd95f40e2d6113e3b932e25c6dc8030c (diff) | |
download | tangerine-wallet-browser-e9cb6508324c166a2d6efe53cf82c39abd4520b4.tar.gz tangerine-wallet-browser-e9cb6508324c166a2d6efe53cf82c39abd4520b4.tar.zst tangerine-wallet-browser-e9cb6508324c166a2d6efe53cf82c39abd4520b4.zip |
Merge branch 'develop' of github.com:MetaMask/metamask-extension into ValidateEmptyKey
Diffstat (limited to 'ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js')
-rw-r--r-- | ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js new file mode 100644 index 000000000..8aefeed4a --- /dev/null +++ b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js @@ -0,0 +1,96 @@ +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import SendRowWrapper from '../send-row-wrapper/' +import AmountMaxButton from './amount-max-button/' +import CurrencyDisplay from '../../../send/currency-display' + +export default class SendAmountRow extends Component { + + static propTypes = { + amount: PropTypes.string, + amountConversionRate: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.number, + ]), + balance: PropTypes.string, + conversionRate: PropTypes.number, + convertedCurrency: PropTypes.string, + gasTotal: PropTypes.string, + inError: PropTypes.bool, + primaryCurrency: PropTypes.string, + selectedToken: PropTypes.object, + setMaxModeTo: PropTypes.func, + tokenBalance: PropTypes.string, + updateSendAmount: PropTypes.func, + updateSendAmountError: PropTypes.func, + } + + validateAmount (amount) { + const { + amountConversionRate, + balance, + conversionRate, + gasTotal, + primaryCurrency, + selectedToken, + tokenBalance, + updateSendAmountError, + } = this.props + + updateSendAmountError({ + amount, + amountConversionRate, + balance, + conversionRate, + gasTotal, + primaryCurrency, + selectedToken, + tokenBalance, + }) + } + + updateAmount (amount) { + const { updateSendAmount, setMaxModeTo } = this.props + + setMaxModeTo(false) + updateSendAmount(amount) + } + + render () { + const { + amount, + amountConversionRate, + convertedCurrency, + gasTotal, + inError, + primaryCurrency, + selectedToken, + } = this.props + + return ( + <SendRowWrapper + label={`${this.context.t('amount')}:`} + showError={inError} + errorType={'amount'} + > + {!inError && gasTotal && <AmountMaxButton />} + <CurrencyDisplay + conversionRate={amountConversionRate} + convertedCurrency={convertedCurrency} + onBlur={newAmount => this.updateAmount(newAmount)} + onChange={newAmount => this.validateAmount(newAmount)} + inError={inError} + primaryCurrency={primaryCurrency || 'ETH'} + selectedToken={selectedToken} + value={amount || '0x0'} + /> + </SendRowWrapper> + ) + } + +} + +SendAmountRow.contextTypes = { + t: PropTypes.func, +} + |