1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-01 13:47:06 +01:00

Prevent signature request component from canceling hardware wallet signing (#11013)

This commit is contained in:
David Walsh 2021-05-07 15:54:20 -05:00 committed by GitHub
parent f3cc048fea
commit bf76d4e754
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -27,10 +27,14 @@ export default class SignatureRequest extends PureComponent {
}; };
componentDidMount() { componentDidMount() {
if (getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) {
window.addEventListener('beforeunload', this._beforeUnload);
}
}
_beforeUnload = (event) => {
const { clearConfirmTransaction, cancel } = this.props; const { clearConfirmTransaction, cancel } = this.props;
const { metricsEvent } = this.context; const { metricsEvent } = this.context;
if (getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) {
window.addEventListener('beforeunload', (event) => {
metricsEvent({ metricsEvent({
eventOpts: { eventOpts: {
category: 'Transactions', category: 'Transactions',
@ -40,9 +44,7 @@ export default class SignatureRequest extends PureComponent {
}); });
clearConfirmTransaction(); clearConfirmTransaction();
cancel(event); cancel(event);
}); };
}
}
formatWallet(wallet) { formatWallet(wallet) {
return `${wallet.slice(0, 8)}...${wallet.slice( return `${wallet.slice(0, 8)}...${wallet.slice(
@ -63,6 +65,16 @@ export default class SignatureRequest extends PureComponent {
const { address: fromAddress } = fromAccount; const { address: fromAddress } = fromAccount;
const { message, domain = {} } = JSON.parse(data); const { message, domain = {} } = JSON.parse(data);
const onSign = (event) => {
window.removeEventListener('beforeunload', this._beforeUnload);
sign(event);
};
const onCancel = (event) => {
window.removeEventListener('beforeunload', this._beforeUnload);
cancel(event);
};
return ( return (
<div className="signature-request page-container"> <div className="signature-request page-container">
<Header fromAccount={fromAccount} /> <Header fromAccount={fromAccount} />
@ -86,7 +98,7 @@ export default class SignatureRequest extends PureComponent {
</div> </div>
</div> </div>
<Message data={message} /> <Message data={message} />
<Footer cancelAction={cancel} signAction={sign} /> <Footer cancelAction={onCancel} signAction={onSign} />
</div> </div>
); );
} }