aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/modals/cancel-transaction/cancel-transaction.container.js
diff options
context:
space:
mode:
authorAlexander Tseung <alextsg@gmail.com>2018-09-18 01:34:29 +0800
committerAlexander Tseung <alextsg@gmail.com>2018-09-20 05:31:10 +0800
commit5a6c333506e4000602c1a1106cee6d06fe83afa8 (patch)
tree2aed850f17114372eaca16ed7e77f42f87907713 /ui/app/components/modals/cancel-transaction/cancel-transaction.container.js
parent3e470fee8a5560b605f7ad1060fb1eebafefd21e (diff)
downloadtangerine-wallet-browser-5a6c333506e4000602c1a1106cee6d06fe83afa8.tar.gz
tangerine-wallet-browser-5a6c333506e4000602c1a1106cee6d06fe83afa8.tar.zst
tangerine-wallet-browser-5a6c333506e4000602c1a1106cee6d06fe83afa8.zip
Switch existing modals from using Notification to Modal. Remove Notification component. Add CancelTransaction modal
Diffstat (limited to 'ui/app/components/modals/cancel-transaction/cancel-transaction.container.js')
-rw-r--r--ui/app/components/modals/cancel-transaction/cancel-transaction.container.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/ui/app/components/modals/cancel-transaction/cancel-transaction.container.js b/ui/app/components/modals/cancel-transaction/cancel-transaction.container.js
new file mode 100644
index 000000000..15bff4bc6
--- /dev/null
+++ b/ui/app/components/modals/cancel-transaction/cancel-transaction.container.js
@@ -0,0 +1,55 @@
+import { connect } from 'react-redux'
+import { compose } from 'recompose'
+import R from 'ramda'
+import { multiplyCurrencies } from '../../../conversion-util'
+import { bnToHex } from '../../../helpers/conversions.util'
+import withModalProps from '../../../higher-order-components/with-modal-props'
+import CancelTransaction from './cancel-transaction.component'
+import { showModal, hideModal, createCancelTransaction } from '../../../actions'
+
+const mapStateToProps = (state, ownProps) => {
+ const { metamask } = state
+ const { transactionId, originalGasPrice } = ownProps
+ const { selectedAddressTxList } = metamask
+ const transaction = R.find(({ id }) => id === transactionId)(selectedAddressTxList)
+ const transactionStatus = transaction ? transaction.status : ''
+
+ const defaultNewGasPrice = bnToHex(multiplyCurrencies(originalGasPrice, 1.1))
+
+ return {
+ transactionId,
+ transactionStatus,
+ originalGasPrice,
+ defaultNewGasPrice,
+ }
+}
+
+const mapDispatchToProps = dispatch => {
+ return {
+ hideModal: () => dispatch(hideModal()),
+ createCancelTransaction: txId => dispatch(createCancelTransaction(txId)),
+ showTransactionConfirmedModal: () => dispatch(showModal({ name: 'TRANSACTION_CONFIRMED' })),
+ }
+}
+
+const mergeProps = (stateProps, dispatchProps, ownProps) => {
+ const { transactionId, ...restStateProps } = stateProps
+ const {
+ createCancelTransaction: dispatchCreateCancelTransaction,
+ ...restDispatchProps
+ } = dispatchProps
+
+ return {
+ ...restStateProps,
+ ...restDispatchProps,
+ ...ownProps,
+ createCancelTransaction: newGasPrice => {
+ return dispatchCreateCancelTransaction(transactionId, newGasPrice)
+ },
+ }
+}
+
+export default compose(
+ withModalProps,
+ connect(mapStateToProps, mapDispatchToProps, mergeProps),
+)(CancelTransaction)