aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/send_/send-content
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2018-04-28 03:03:00 +0800
committerDan <danjm.com@gmail.com>2018-04-30 23:35:48 +0800
commit26f965bcceb26ce7cdec9df9f213b44be8d9acac (patch)
tree155bad73750b5c3905f799eac6d298c9dc7305dc /ui/app/components/send_/send-content
parent33c16d1bf62133a87d8f24232ee85438a6b6a0e6 (diff)
downloadtangerine-wallet-browser-26f965bcceb26ce7cdec9df9f213b44be8d9acac.tar.gz
tangerine-wallet-browser-26f965bcceb26ce7cdec9df9f213b44be8d9acac.tar.zst
tangerine-wallet-browser-26f965bcceb26ce7cdec9df9f213b44be8d9acac.zip
Further refactors; includes refactor of send-v2.js and associated container
Diffstat (limited to 'ui/app/components/send_/send-content')
-rw-r--r--ui/app/components/send_/send-content/send-amount-row/amount-max-button/amount-max-button.container.js6
-rw-r--r--ui/app/components/send_/send-content/send-amount-row/send-amount-row.component.js5
-rw-r--r--ui/app/components/send_/send-content/send-amount-row/send-amount-row.container.js14
-rw-r--r--ui/app/components/send_/send-content/send-amount-row/send-amount-row.selectors.js21
-rw-r--r--ui/app/components/send_/send-content/send-amount-row/send-amount-row.utils.js61
-rw-r--r--ui/app/components/send_/send-content/send-from-row/send-from-row.component.js6
-rw-r--r--ui/app/components/send_/send-content/send-from-row/send-from-row.container.js6
-rw-r--r--ui/app/components/send_/send-content/send-gas-row/send-gas-row.component.js15
-rw-r--r--ui/app/components/send_/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.js1
-rw-r--r--ui/app/components/send_/send-content/send-to-row/send-to-row.container.js6
10 files changed, 27 insertions, 114 deletions
diff --git a/ui/app/components/send_/send-content/send-amount-row/amount-max-button/amount-max-button.container.js b/ui/app/components/send_/send-content/send-amount-row/amount-max-button/amount-max-button.container.js
index 5bdb67995..4211f16ab 100644
--- a/ui/app/components/send_/send-content/send-amount-row/amount-max-button/amount-max-button.container.js
+++ b/ui/app/components/send_/send-content/send-amount-row/amount-max-button/amount-max-button.container.js
@@ -9,10 +9,12 @@ import { getMaxModeOn } from '../send-amount-row.selectors.js'
import { calcMaxAmount } from './amount-max-button.utils.js'
import {
updateSendAmount,
- updateSendErrors,
setMaxModeTo,
-} from '../../../actions'
+} from '../../../../../actions'
import AmountMaxButton from './amount-max-button.component'
+import {
+ updateSendErrors,
+} from '../../../../../ducks/send'
export default connect(mapStateToProps, mapDispatchToProps)(AmountMaxButton)
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
index 5c3084365..dbebc0bdf 100644
--- 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
@@ -8,7 +8,10 @@ export default class SendAmountRow extends Component {
static propTypes = {
amount: PropTypes.string,
- amountConversionRate: PropTypes.number,
+ amountConversionRate: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.number,
+ ]),
balance: PropTypes.string,
conversionRate: PropTypes.number,
convertedCurrency: PropTypes.string,
diff --git a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.container.js b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.container.js
index 16e88bede..13888ec53 100644
--- a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.container.js
+++ b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.container.js
@@ -1,24 +1,26 @@
import { connect } from 'react-redux'
import {
+ getAmountConversionRate,
getConversionRate,
getConvertedCurrency,
getGasTotal,
+ getPrimaryCurrency,
getSelectedToken,
getSendAmount,
getSendFromBalance,
getTokenBalance,
-} from '../../send.selectors.js'
+} from '../../send.selectors'
import {
- getAmountConversionRate,
- getPrimaryCurrency,
sendAmountIsInError,
-} from './send-amount-row.selectors.js'
-import { getAmountErrorObject } from './send-amount-row.utils.js'
+} from './send-amount-row.selectors'
+import { getAmountErrorObject } from '../../send.utils'
import {
setMaxModeTo,
updateSendAmount,
- updateSendErrors,
} from '../../../../actions'
+import {
+ updateSendErrors,
+} from '../../../../ducks/send'
import SendAmountRow from './send-amount-row.component'
export default connect(mapStateToProps, mapDispatchToProps)(SendAmountRow)
diff --git a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.selectors.js b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.selectors.js
index 88dee0dcb..62e4f6b32 100644
--- a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.selectors.js
+++ b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.selectors.js
@@ -1,13 +1,5 @@
-import {
- getSelectedToken,
- getSelectedTokenToFiatRate,
- getConversionRate,
-} from '../../send.selectors.js'
-
const selectors = {
- getAmountConversionRate,
getMaxModeOn,
- getPrimaryCurrency,
sendAmountIsInError,
}
@@ -18,16 +10,5 @@ function getMaxModeOn (state) {
}
function sendAmountIsInError (state) {
- return Boolean(state.metamask.send.errors.amount)
-}
-
-function getPrimaryCurrency (state) {
- const selectedToken = getSelectedToken(state)
- return selectedToken && selectedToken.symbol
-}
-
-function getAmountConversionRate (state) {
- return getSelectedToken(state)
- ? getSelectedTokenToFiatRate(state)
- : getConversionRate(state)
+ return Boolean(state.send.errors.amount)
}
diff --git a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.utils.js b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.utils.js
index 6ec5463d3..e69de29bb 100644
--- a/ui/app/components/send_/send-content/send-amount-row/send-amount-row.utils.js
+++ b/ui/app/components/send_/send-content/send-amount-row/send-amount-row.utils.js
@@ -1,61 +0,0 @@
-const {
- conversionGreaterThan,
-} = require('../../../../conversion-util')
-const {
- isBalanceSufficient,
- isTokenBalanceSufficient,
-} = require('../../send.utils')
-
-function getAmountErrorObject ({
- amount,
- amountConversionRate,
- balance,
- conversionRate,
- gasTotal,
- primaryCurrency,
- selectedToken,
- tokenBalance,
-}) {
- let insufficientFunds = false
- if (gasTotal && conversionRate) {
- insufficientFunds = !isBalanceSufficient({
- amount: selectedToken ? '0x0' : amount,
- amountConversionRate,
- balance,
- conversionRate,
- gasTotal,
- primaryCurrency,
- })
- }
-
- let inSufficientTokens = false
- if (selectedToken && tokenBalance !== null) {
- const { decimals } = selectedToken
- inSufficientTokens = !isTokenBalanceSufficient({
- tokenBalance,
- amount,
- decimals,
- })
- }
-
- const amountLessThanZero = conversionGreaterThan(
- { value: 0, fromNumericBase: 'dec' },
- { value: amount, fromNumericBase: 'hex' },
- )
-
- let amountError = null
-
- if (insufficientFunds) {
- amountError = 'insufficientFunds'
- } else if (inSufficientTokens) {
- amountError = 'insufficientTokens'
- } else if (amountLessThanZero) {
- amountError = 'negativeETH'
- }
-
- return { amount: amountError }
-}
-
-module.exports = {
- getAmountErrorObject,
-}
diff --git a/ui/app/components/send_/send-content/send-from-row/send-from-row.component.js b/ui/app/components/send_/send-content/send-from-row/send-from-row.component.js
index 193262fa3..17e7f8e46 100644
--- a/ui/app/components/send_/send-content/send-from-row/send-from-row.component.js
+++ b/ui/app/components/send_/send-content/send-from-row/send-from-row.component.js
@@ -14,19 +14,19 @@ export default class SendFromRow extends Component {
openFromDropdown: PropTypes.func,
tokenContract: PropTypes.object,
updateSendFrom: PropTypes.func,
- updateSendTokenBalance: PropTypes.func,
+ setSendTokenBalance: PropTypes.func,
};
async handleFromChange (newFrom) {
const {
updateSendFrom,
tokenContract,
- updateSendTokenBalance,
+ setSendTokenBalance,
} = this.props
if (tokenContract) {
const usersToken = await tokenContract.balanceOf(newFrom.address)
- updateSendTokenBalance(usersToken)
+ setSendTokenBalance(usersToken)
}
updateSendFrom(newFrom)
}
diff --git a/ui/app/components/send_/send-content/send-from-row/send-from-row.container.js b/ui/app/components/send_/send-content/send-from-row/send-from-row.container.js
index d62782e9f..9e366445d 100644
--- a/ui/app/components/send_/send-content/send-from-row/send-from-row.container.js
+++ b/ui/app/components/send_/send-content/send-from-row/send-from-row.container.js
@@ -11,7 +11,7 @@ import {
import { calcTokenUpdateAmount } from './send-from-row.utils.js'
import {
updateSendFrom,
- updateSendTokenBalance,
+ setSendTokenBalance,
} from '../../../../actions'
import {
closeFromDropdown,
@@ -36,11 +36,11 @@ function mapDispatchToProps (dispatch) {
closeFromDropdown: () => dispatch(closeFromDropdown()),
openFromDropdown: () => dispatch(openFromDropdown()),
updateSendFrom: newFrom => dispatch(updateSendFrom(newFrom)),
- updateSendTokenBalance: (usersToken, selectedToken) => {
+ setSendTokenBalance: (usersToken, selectedToken) => {
if (!usersToken) return
const tokenBalance = calcTokenUpdateAmount(selectedToken, selectedToken)
- dispatch(updateSendTokenBalance(tokenBalance))
+ dispatch(setSendTokenBalance(tokenBalance))
},
}
}
diff --git a/ui/app/components/send_/send-content/send-gas-row/send-gas-row.component.js b/ui/app/components/send_/send-content/send-gas-row/send-gas-row.component.js
index a8441c92f..c62c110e0 100644
--- a/ui/app/components/send_/send-content/send-gas-row/send-gas-row.component.js
+++ b/ui/app/components/send_/send-content/send-gas-row/send-gas-row.component.js
@@ -18,23 +18,8 @@ export default class SendGasRow extends Component {
showCustomizeGasModal: PropTypes.func,
tokenContract: PropTypes.object,
updateSendFrom: PropTypes.func,
- updateSendTokenBalance: PropTypes.func,
};
- async handleFromChange (newFrom) {
- const {
- tokenContract,
- updateSendFrom,
- updateSendTokenBalance,
- } = this.props
-
- if (tokenContract) {
- const usersToken = await tokenContract.balanceOf(newFrom.address)
- updateSendTokenBalance(usersToken)
- }
- updateSendFrom(newFrom)
- }
-
render () {
const {
conversionRate,
diff --git a/ui/app/components/send_/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.js b/ui/app/components/send_/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.js
index c031248c7..0d314208b 100644
--- a/ui/app/components/send_/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.js
+++ b/ui/app/components/send_/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.js
@@ -10,6 +10,7 @@ export default class SendRowErrorMessage extends Component {
render () {
const { errors, errorType } = this.props
+
const errorMessage = errors[errorType]
return (
diff --git a/ui/app/components/send_/send-content/send-to-row/send-to-row.container.js b/ui/app/components/send_/send-content/send-to-row/send-to-row.container.js
index b55455f8b..bffdda49c 100644
--- a/ui/app/components/send_/send-content/send-to-row/send-to-row.container.js
+++ b/ui/app/components/send_/send-content/send-to-row/send-to-row.container.js
@@ -10,12 +10,12 @@ import {
} from './send-to-row.selectors.js'
import { getToErrorObject } from './send-to-row.utils.js'
import {
- updateSendErrors,
updateSendTo,
} from '../../../../actions'
import {
- openToDropdown,
- closeToDropdown,
+ updateSendErrors,
+ openToDropdown,
+ closeToDropdown,
} from '../../../../ducks/send'
import SendToRow from './send-to-row.component'