From d3c7a7ff1fe9f8715d050c8c11ccc3ae23cd5f34 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Fri, 28 Feb 2020 13:47:12 +0000 Subject: [PATCH] Use latest backup status directly rather than via state This uses the latest backup status we just retrieved by returning from the lookup path (instead of using it indirectly via state). This is important because state updates are batched, so we can't rely on the value to be updated immediately like we were. Fixes https://github.com/vector-im/riot-web/issues/12562 --- .../secretstorage/CreateSecretStorageDialog.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js b/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js index 712f7d5f95..c42eb7d8dc 100644 --- a/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js +++ b/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js @@ -117,6 +117,11 @@ export default class CreateSecretStorageDialog extends React.PureComponent { backupInfo, backupSigStatus, }); + + return { + backupInfo, + backupSigStatus, + }; } async _queryKeyUploadAuth() { @@ -269,13 +274,13 @@ export default class CreateSecretStorageDialog extends React.PureComponent { const RestoreKeyBackupDialog = sdk.getComponent('dialogs.keybackup.RestoreKeyBackupDialog'); const { finished } = Modal.createTrackedDialog( 'Restore Backup', '', RestoreKeyBackupDialog, {showSummary: false}, null, - /* priority = */ false, /* static = */ true, + /* priority = */ false, /* static = */ false, ); await finished; - await this._fetchBackupInfo(); + const { backupSigStatus } = await this._fetchBackupInfo(); if ( - this.state.backupSigStatus.usable && + backupSigStatus.usable && this.state.canUploadKeysWithPasswordOnly && this.state.accountPassword ) {