aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Huang <tmashuang@users.noreply.github.com>2017-06-27 07:18:37 +0800
committerGitHub <noreply@github.com>2017-06-27 07:18:37 +0800
commit62c4501160b23e526ea4a5d496182666273fbf66 (patch)
tree9f36ff0f11974399739f36d4a74e2cfbdc71a7a3
parent8b5b2d832995ca4b928c47abebd7e5476ac71e6a (diff)
parent9962a3068b25283e62963338f2c686818f0baef7 (diff)
downloadtangerine-wallet-browser-62c4501160b23e526ea4a5d496182666273fbf66.tar.gz
tangerine-wallet-browser-62c4501160b23e526ea4a5d496182666273fbf66.tar.zst
tangerine-wallet-browser-62c4501160b23e526ea4a5d496182666273fbf66.zip
Merge pull request #1677 from MetaMask/i1676-quickclick
Prevent Duplicate Submission with Quick Clicking
-rw-r--r--CHANGELOG.md1
-rw-r--r--ui/app/components/pending-tx.js6
2 files changed, 5 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 754f076f8..4bfec12dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@
- Fix bug where slowly mined txs would sometimes be incorrectly marked as failed.
- Fix bug where badge count did not reflect personal_sign pending messages.
- Seed word confirmation wording is now scarier.
+- Prevent users from submitting two duplicate transactions by disabling submit.
## 3.7.8 2017-6-12
diff --git a/ui/app/components/pending-tx.js b/ui/app/components/pending-tx.js
index 4b1a00eca..f33a5d948 100644
--- a/ui/app/components/pending-tx.js
+++ b/ui/app/components/pending-tx.js
@@ -27,6 +27,7 @@ function PendingTx () {
this.state = {
valid: true,
txData: null,
+ submitting: false,
}
}
@@ -316,7 +317,7 @@ PendingTx.prototype.render = function () {
type: 'submit',
value: 'ACCEPT',
style: { marginLeft: '10px' },
- disabled: insufficientBalance || !this.state.valid || !isValidAddress,
+ disabled: insufficientBalance || !this.state.valid || !isValidAddress || this.state.submitting,
}),
h('button.cancel.btn-red', {
@@ -412,11 +413,12 @@ PendingTx.prototype.onSubmit = function (event) {
event.preventDefault()
const txMeta = this.gatherTxMeta()
const valid = this.checkValidity()
- this.setState({ valid })
+ this.setState({ valid, submitting: true })
if (valid && this.verifyGasParams()) {
this.props.sendTransaction(txMeta, event)
} else {
this.props.dispatch(actions.displayWarning('Invalid Gas Parameters'))
+ this.setState({ submitting: false })
}
}