Start new key backup in security setup flow
Part of https://github.com/vector-im/riot-web/issues/11889
This commit is contained in:
parent
d1cbec98b7
commit
39c8a9d204
3 changed files with 42 additions and 2 deletions
|
@ -87,6 +87,8 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
|||
// set if we are 'upgrading' encryption (making an SSSS store from
|
||||
// an existing key backup secret).
|
||||
doingUpgrade: null,
|
||||
// status of the key backup toggle switch
|
||||
useKeyBackup: true,
|
||||
};
|
||||
|
||||
this._fetchBackupInfo();
|
||||
|
@ -141,13 +143,19 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
|||
}
|
||||
|
||||
_onKeyBackupStatusChange = () => {
|
||||
this._fetchBackupInfo();
|
||||
if (this.state.phase === PHASE_MIGRATE) this._fetchBackupInfo();
|
||||
}
|
||||
|
||||
_collectRecoveryKeyNode = (n) => {
|
||||
this._recoveryKeyNode = n;
|
||||
}
|
||||
|
||||
_onUseKeyBackupChange = (enabled) => {
|
||||
this.setState({
|
||||
useKeyBackup: enabled,
|
||||
});
|
||||
}
|
||||
|
||||
_onMigrateFormSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
if (this.state.backupSigStatus.usable) {
|
||||
|
@ -222,6 +230,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
|||
authUploadDeviceSigningKeys: this._doBootstrapUIAuth,
|
||||
createSecretStorageKey: async () => this._keyInfo,
|
||||
keyBackupInfo: this.state.backupInfo,
|
||||
setupNewKeyBackup: !this.state.backupInfo && this.state.useKeyBackup,
|
||||
});
|
||||
this.setState({
|
||||
phase: PHASE_DONE,
|
||||
|
@ -425,7 +434,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
|||
hasCancel={false}
|
||||
primaryDisabled={this.state.canUploadKeysWithPasswordOnly && !this.state.accountPassword}
|
||||
>
|
||||
<button type="button" className="danger" onClick={this._onSkipClick}>
|
||||
<button type="button" className="danger" onClick={this._onSkipSetupClick}>
|
||||
{_t('Skip')}
|
||||
</button>
|
||||
</DialogButtons>
|
||||
|
@ -436,6 +445,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
|||
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
||||
const Field = sdk.getComponent('views.elements.Field');
|
||||
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
||||
const LabelledToggleSwitch = sdk.getComponent('views.elements.LabelledToggleSwitch');
|
||||
|
||||
let strengthMeter;
|
||||
let helpText;
|
||||
|
@ -484,6 +494,11 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<LabelledToggleSwitch
|
||||
label={ _t("Back up my encryption keys, securing them with the same passphrase")}
|
||||
onChange={this._onUseKeyBackupChange} value={this.state.useKeyBackup}
|
||||
/>
|
||||
|
||||
<DialogButtons primaryButton={_t('Continue')}
|
||||
onPrimaryButtonClick={this._onPassPhraseNextClick}
|
||||
hasCancel={false}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue