From 3ac0deebabd957629ee10a8282a20cd476a75a49 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Fri, 13 Dec 2019 13:55:26 +0000 Subject: [PATCH] Use static modals for verification Verification with cross-signing may requiring asking for your secret storage passphrase, which is displayed in it's own modal on top of flows. For now while verification takes in modals also, mark the verification ones as static so they don't lose state when secret storage appears on top mid-flow. --- src/components/structures/MatrixChat.js | 2 +- src/components/views/dialogs/KeyShareDialog.js | 2 +- src/components/views/elements/DeviceVerifyButtons.js | 2 +- src/components/views/messages/MKeyVerificationRequest.js | 2 +- src/components/views/right_panel/UserInfo.js | 2 +- src/components/views/toasts/VerificationRequestToast.js | 4 +++- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 8105805ab0..82a682f9ab 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -1492,7 +1492,7 @@ export default createReactClass({ const IncomingSasDialog = sdk.getComponent("views.dialogs.IncomingSasDialog"); Modal.createTrackedDialog('Incoming Verification', '', IncomingSasDialog, { verifier, - }); + }, null, /* priority = */ false, /* static = */ true); }); } // Fire the tinter right on startup to ensure the default theme is applied diff --git a/src/components/views/dialogs/KeyShareDialog.js b/src/components/views/dialogs/KeyShareDialog.js index 01e3479bb1..ba8918e79c 100644 --- a/src/components/views/dialogs/KeyShareDialog.js +++ b/src/components/views/dialogs/KeyShareDialog.js @@ -99,7 +99,7 @@ export default createReactClass({ this.props.onFinished(true); } }, - }); + }, null, /* priority = */ false, /* static = */ true); }, _onShareClicked: function() { diff --git a/src/components/views/elements/DeviceVerifyButtons.js b/src/components/views/elements/DeviceVerifyButtons.js index 15678b7d7a..bb08f8b234 100644 --- a/src/components/views/elements/DeviceVerifyButtons.js +++ b/src/components/views/elements/DeviceVerifyButtons.js @@ -59,7 +59,7 @@ export default createReactClass({ Modal.createTrackedDialog('Device Verify Dialog', '', DeviceVerifyDialog, { userId: this.props.userId, device: this.state.device, - }); + }, null, /* priority = */ false, /* static = */ true); }, onUnverifyClick: function() { diff --git a/src/components/views/messages/MKeyVerificationRequest.js b/src/components/views/messages/MKeyVerificationRequest.js index b2a1724fc6..4faa1b20aa 100644 --- a/src/components/views/messages/MKeyVerificationRequest.js +++ b/src/components/views/messages/MKeyVerificationRequest.js @@ -52,7 +52,7 @@ export default class MKeyVerificationRequest extends React.Component { const verifier = MatrixClientPeg.get().acceptVerificationDM(this.props.mxEvent, verificationMethods.SAS); Modal.createTrackedDialog('Incoming Verification', '', IncomingSasDialog, { verifier, - }); + }, null, /* priority = */ false, /* static = */ true); }; _onRejectClicked = () => { diff --git a/src/components/views/right_panel/UserInfo.js b/src/components/views/right_panel/UserInfo.js index af8b4616f8..ae29021e08 100644 --- a/src/components/views/right_panel/UserInfo.js +++ b/src/components/views/right_panel/UserInfo.js @@ -114,7 +114,7 @@ function verifyDevice(userId, device) { Modal.createTrackedDialog('Device Verify Dialog', '', DeviceVerifyDialog, { userId: userId, device: device, - }); + }, null, /* priority = */ false, /* static = */ true); } function DeviceItem({userId, device}) { diff --git a/src/components/views/toasts/VerificationRequestToast.js b/src/components/views/toasts/VerificationRequestToast.js index 89af91c41f..7e043f4d83 100644 --- a/src/components/views/toasts/VerificationRequestToast.js +++ b/src/components/views/toasts/VerificationRequestToast.js @@ -90,7 +90,9 @@ export default class VerificationRequestToast extends React.PureComponent { const verifier = this.props.request.beginKeyVerification(verificationMethods.SAS); const IncomingSasDialog = sdk.getComponent('views.dialogs.IncomingSasDialog'); - Modal.createTrackedDialog('Incoming Verification', '', IncomingSasDialog, {verifier}); + Modal.createTrackedDialog('Incoming Verification', '', IncomingSasDialog, { + verifier, + }, null, /* priority = */ false, /* static = */ true); }; render() {