mirror of https://github.com/vector-im/riot-web
Merge pull request #4374 from matrix-org/jryans/backup-dialog-hellscape
Pass along key backup for bootstrappull/21833/head
commit
34e2fd42ec
|
@ -185,7 +185,7 @@ export async function promptForBackupPassphrase() {
|
||||||
|
|
||||||
const RestoreKeyBackupDialog = sdk.getComponent('dialogs.keybackup.RestoreKeyBackupDialog');
|
const RestoreKeyBackupDialog = sdk.getComponent('dialogs.keybackup.RestoreKeyBackupDialog');
|
||||||
const { finished } = Modal.createTrackedDialog('Restore Backup', '', RestoreKeyBackupDialog, {
|
const { finished } = Modal.createTrackedDialog('Restore Backup', '', RestoreKeyBackupDialog, {
|
||||||
showSummary: false, keyCallback: k => key = k,
|
showSummary: false, keyCallback: k => key = k,
|
||||||
}, null, /* priority = */ false, /* static = */ true);
|
}, null, /* priority = */ false, /* static = */ true);
|
||||||
|
|
||||||
const success = await finished;
|
const success = await finished;
|
||||||
|
|
|
@ -70,6 +70,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
this._recoveryKey = null;
|
this._recoveryKey = null;
|
||||||
this._recoveryKeyNode = null;
|
this._recoveryKeyNode = null;
|
||||||
this._setZxcvbnResultTimeout = null;
|
this._setZxcvbnResultTimeout = null;
|
||||||
|
this._backupKey = null;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
phase: PHASE_LOADING,
|
phase: PHASE_LOADING,
|
||||||
|
@ -243,7 +244,15 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
createSecretStorageKey: async () => this._recoveryKey,
|
createSecretStorageKey: async () => this._recoveryKey,
|
||||||
keyBackupInfo: this.state.backupInfo,
|
keyBackupInfo: this.state.backupInfo,
|
||||||
setupNewKeyBackup: !this.state.backupInfo && this.state.useKeyBackup,
|
setupNewKeyBackup: !this.state.backupInfo && this.state.useKeyBackup,
|
||||||
getKeyBackupPassphrase: promptForBackupPassphrase,
|
getKeyBackupPassphrase: () => {
|
||||||
|
// We may already have the backup key if we earlier went
|
||||||
|
// through the restore backup path, so pass it along
|
||||||
|
// rather than prompting again.
|
||||||
|
if (this._backupKey) {
|
||||||
|
return this._backupKey;
|
||||||
|
}
|
||||||
|
return promptForBackupPassphrase();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.setState({
|
this.setState({
|
||||||
|
@ -272,10 +281,18 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
_restoreBackup = async () => {
|
_restoreBackup = async () => {
|
||||||
|
// It's possible we'll need the backup key later on for bootstrapping,
|
||||||
|
// so let's stash it here, rather than prompting for it twice.
|
||||||
|
const keyCallback = k => this._backupKey = k;
|
||||||
|
|
||||||
const RestoreKeyBackupDialog = sdk.getComponent('dialogs.keybackup.RestoreKeyBackupDialog');
|
const RestoreKeyBackupDialog = sdk.getComponent('dialogs.keybackup.RestoreKeyBackupDialog');
|
||||||
const { finished } = Modal.createTrackedDialog(
|
const { finished } = Modal.createTrackedDialog(
|
||||||
'Restore Backup', '', RestoreKeyBackupDialog, {showSummary: false}, null,
|
'Restore Backup', '', RestoreKeyBackupDialog,
|
||||||
/* priority = */ false, /* static = */ false,
|
{
|
||||||
|
showSummary: false,
|
||||||
|
keyCallback,
|
||||||
|
},
|
||||||
|
null, /* priority = */ false, /* static = */ false,
|
||||||
);
|
);
|
||||||
|
|
||||||
await finished;
|
await finished;
|
||||||
|
|
Loading…
Reference in New Issue