aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/pages/send/send.container.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/app/pages/send/send.container.js')
-rw-r--r--ui/app/pages/send/send.container.js115
1 files changed, 115 insertions, 0 deletions
diff --git a/ui/app/pages/send/send.container.js b/ui/app/pages/send/send.container.js
new file mode 100644
index 000000000..69adbb765
--- /dev/null
+++ b/ui/app/pages/send/send.container.js
@@ -0,0 +1,115 @@
+import { connect } from 'react-redux'
+import SendEther from './send.component'
+import { withRouter } from 'react-router-dom'
+import { compose } from 'recompose'
+const {
+ getSelectedAddress,
+} = require('../../selectors/selectors')
+
+import {
+ getAmountConversionRate,
+ getBlockGasLimit,
+ getConversionRate,
+ getCurrentNetwork,
+ getGasLimit,
+ getGasPrice,
+ getGasTotal,
+ getPrimaryCurrency,
+ getRecentBlocks,
+ getSelectedToken,
+ getSelectedTokenContract,
+ getSelectedTokenToFiatRate,
+ getSendAmount,
+ getSendEditingTransactionId,
+ getSendHexDataFeatureFlagState,
+ getSendFromObject,
+ getSendTo,
+ getTokenBalance,
+ getQrCodeData,
+} from './send.selectors'
+import {
+ updateSendTo,
+ updateSendTokenBalance,
+ updateGasData,
+ setGasTotal,
+ showQrScanner,
+ qrCodeDetected,
+} from '../../store/actions'
+import {
+ resetSendState,
+ updateSendErrors,
+} from '../../ducks/send/send.duck'
+import {
+ fetchBasicGasEstimates,
+} from '../../ducks/gas/gas.duck'
+import {
+ calcGasTotal,
+} from './send.utils.js'
+
+import {
+ SEND_ROUTE,
+} from '../../helpers/constants/routes'
+
+module.exports = compose(
+ withRouter,
+ connect(mapStateToProps, mapDispatchToProps)
+)(SendEther)
+
+function mapStateToProps (state) {
+ return {
+ amount: getSendAmount(state),
+ amountConversionRate: getAmountConversionRate(state),
+ blockGasLimit: getBlockGasLimit(state),
+ conversionRate: getConversionRate(state),
+ editingTransactionId: getSendEditingTransactionId(state),
+ from: getSendFromObject(state),
+ gasLimit: getGasLimit(state),
+ gasPrice: getGasPrice(state),
+ gasTotal: getGasTotal(state),
+ network: getCurrentNetwork(state),
+ primaryCurrency: getPrimaryCurrency(state),
+ recentBlocks: getRecentBlocks(state),
+ selectedAddress: getSelectedAddress(state),
+ selectedToken: getSelectedToken(state),
+ showHexData: getSendHexDataFeatureFlagState(state),
+ to: getSendTo(state),
+ tokenBalance: getTokenBalance(state),
+ tokenContract: getSelectedTokenContract(state),
+ tokenToFiatRate: getSelectedTokenToFiatRate(state),
+ qrCodeData: getQrCodeData(state),
+ }
+}
+
+function mapDispatchToProps (dispatch) {
+ return {
+ updateAndSetGasLimit: ({
+ blockGasLimit,
+ editingTransactionId,
+ gasLimit,
+ gasPrice,
+ recentBlocks,
+ selectedAddress,
+ selectedToken,
+ to,
+ value,
+ data,
+ }) => {
+ !editingTransactionId
+ ? dispatch(updateGasData({ gasPrice, recentBlocks, selectedAddress, selectedToken, blockGasLimit, to, value, data }))
+ : dispatch(setGasTotal(calcGasTotal(gasLimit, gasPrice)))
+ },
+ updateSendTokenBalance: ({ selectedToken, tokenContract, address }) => {
+ dispatch(updateSendTokenBalance({
+ selectedToken,
+ tokenContract,
+ address,
+ }))
+ },
+ updateSendErrors: newError => dispatch(updateSendErrors(newError)),
+ resetSendState: () => dispatch(resetSendState()),
+ scanQrCode: () => dispatch(showQrScanner(SEND_ROUTE)),
+ qrCodeDetected: (data) => dispatch(qrCodeDetected(data)),
+ updateSendTo: (to, nickname) => dispatch(updateSendTo(to, nickname)),
+ fetchBasicGasEstimates: () => dispatch(fetchBasicGasEstimates()),
+ }
+}