Skip to content

Commit

Permalink
Disable Confirm button on subsequent clicks to prevent confirming mul…
Browse files Browse the repository at this point in the history
…tiple times
  • Loading branch information
alextsg committed Aug 3, 2018
1 parent e77424e commit 6d76d4e
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export default class ConfirmPageContainer extends Component {
// Footer
onCancel: PropTypes.func,
onSubmit: PropTypes.func,
valid: PropTypes.bool,
disabled: PropTypes.bool,
}

render () {
Expand All @@ -54,7 +54,7 @@ export default class ConfirmPageContainer extends Component {
fromAddress,
toName,
toAddress,
valid,
disabled,
errorKey,
errorMessage,
contentComponent,
Expand Down Expand Up @@ -110,7 +110,7 @@ export default class ConfirmPageContainer extends Component {
onSubmit={() => onSubmit()}
submitText={this.context.t('confirm')}
submitButtonType="confirm"
disabled={!valid}
disabled={disabled}
/>
</div>
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ export default class ConfirmTransactionBase extends Component {
warning: PropTypes.string,
}

state = {
submitting: false,
}

componentDidUpdate () {
const {
transactionStatus,
Expand Down Expand Up @@ -258,15 +262,25 @@ export default class ConfirmTransactionBase extends Component {

handleSubmit () {
const { sendTransaction, clearConfirmTransaction, txData, history, onSubmit } = this.props
const { submitting } = this.state

if (submitting) {
return
}

this.setState({ submitting: true })

if (onSubmit) {
onSubmit(txData)
Promise.resolve(onSubmit(txData))
.then(this.setState({ submitting: false }))
} else {
sendTransaction(txData)
.then(() => {
clearConfirmTransaction()
this.setState({ submitting: false })
history.push(DEFAULT_ROUTE)
})
.catch(() => this.setState({ submitting: false }))
}
}

Expand All @@ -280,7 +294,7 @@ export default class ConfirmTransactionBase extends Component {
methodData,
ethTransactionAmount,
fiatTransactionAmount,
valid: propsValid,
valid: propsValid = true,
errorMessage,
errorKey: propsErrorKey,
currentCurrency,
Expand All @@ -295,6 +309,7 @@ export default class ConfirmTransactionBase extends Component {
nonce,
warning,
} = this.props
const { submitting } = this.state

const { name } = methodData
const fiatConvertedAmount = formatCurrency(fiatTransactionAmount, currentCurrency)
Expand All @@ -320,7 +335,7 @@ export default class ConfirmTransactionBase extends Component {
errorMessage={errorMessage}
errorKey={propsErrorKey || errorKey}
warning={warning}
valid={propsValid || valid}
disabled={!propsValid || !valid || submitting}
onEdit={() => this.handleEdit()}
onCancel={() => this.handleCancel()}
onSubmit={() => this.handleSubmit()}
Expand Down

0 comments on commit 6d76d4e

Please sign in to comment.