From a2d9c43fba49680d7553409a4f5013d3febd80e9 Mon Sep 17 00:00:00 2001 From: Alexander Tseung Date: Fri, 6 Jul 2018 11:58:41 -0700 Subject: Various fixes from PR comments --- .../confirm-transaction.component.js | 24 ++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'ui/app/components/pages/confirm-transaction/confirm-transaction.component.js') diff --git a/ui/app/components/pages/confirm-transaction/confirm-transaction.component.js b/ui/app/components/pages/confirm-transaction/confirm-transaction.component.js index 219f5b49a..874a89fd2 100644 --- a/ui/app/components/pages/confirm-transaction/confirm-transaction.component.js +++ b/ui/app/components/pages/confirm-transaction/confirm-transaction.component.js @@ -1,7 +1,6 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { Switch, Route } from 'react-router-dom' -import R from 'ramda' import Loading from '../../loading-screen' import ConfirmTransactionSwitch from '../confirm-transaction-switch' import ConfirmTransactionBase from '../confirm-transaction-base' @@ -30,6 +29,12 @@ export default class ConfirmTransaction extends Component { unconfirmedTransactions: PropTypes.array, setTransactionToConfirm: PropTypes.func, confirmTransaction: PropTypes.object, + clearConfirmTransaction: PropTypes.func, + } + + getParamsTransactionId () { + const { match: { params: { id } = {} } } = this.props + return id || null } componentDidMount () { @@ -52,13 +57,16 @@ export default class ConfirmTransaction extends Component { componentDidUpdate () { const { - match: { params: { id: paramsTransactionId } = {} }, setTransactionToConfirm, confirmTransaction: { txData: { id: transactionId } = {} }, + clearConfirmTransaction, } = this.props + const paramsTransactionId = this.getParamsTransactionId() if (paramsTransactionId && transactionId && paramsTransactionId !== transactionId + '') { + clearConfirmTransaction() setTransactionToConfirm(paramsTransactionId) + return } if (!transactionId) { @@ -70,13 +78,13 @@ export default class ConfirmTransaction extends Component { const { history, unconfirmedTransactions, - match: { params: { id: paramsTransactionId } = {} }, setTransactionToConfirm, } = this.props + const paramsTransactionId = this.getParamsTransactionId() if (paramsTransactionId) { // Check to make sure params ID is valid - const tx = R.find(({ id }) => id + '' === paramsTransactionId)(unconfirmedTransactions) + const tx = unconfirmedTransactions.find(({ id }) => id + '' === paramsTransactionId) if (!tx) { history.replace(DEFAULT_ROUTE) @@ -96,8 +104,12 @@ export default class ConfirmTransaction extends Component { render () { const { confirmTransaction: { txData: { id } } = {} } = this.props + const paramsTransactionId = this.getParamsTransactionId() - return id + // Show routes when state.confirmTransaction has been set and when either the ID in the params + // isn't specified or is specified and matches the ID in state.confirmTransaction in order to + // support URLs of /confirm-transaction or /confirm-transaction/ + return id && (!paramsTransactionId || paramsTransactionId === id + '') ? ( - + ) : -- cgit