From 3b17dc60b5cd938a4352efbfb108c6a6af451df2 Mon Sep 17 00:00:00 2001 From: Bruno Windels <274386+bwindels@users.noreply.github.com> Date: Tue, 28 Mar 2023 11:48:36 +0200 Subject: [PATCH] fix not being able to switch to passphrase mode anymore for key backup --- .../session/settings/KeyBackupViewModel.ts | 24 ++++++++----------- .../session/settings/KeyBackupSettingsView.ts | 10 ++------ 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/domain/session/settings/KeyBackupViewModel.ts b/src/domain/session/settings/KeyBackupViewModel.ts index 3426191b..663d1ea6 100644 --- a/src/domain/session/settings/KeyBackupViewModel.ts +++ b/src/domain/session/settings/KeyBackupViewModel.ts @@ -26,7 +26,8 @@ import type {CrossSigning} from "../../../matrix/verification/CrossSigning"; export enum Status { Enabled, - Setup, + SetupWithPassphrase, + SetupWithRecoveryKey, Pending, NewVersionAvailable }; @@ -108,7 +109,10 @@ export class KeyBackupViewModel extends ViewModel { return keyBackup.needsNewKey ? Status.NewVersionAvailable : Status.Enabled; } } else { - return Status.Setup; + switch (this._setupKeyType) { + case KeyType.RecoveryKey: return Status.SetupWithRecoveryKey; + case KeyType.Passphrase: return Status.SetupWithPassphrase; + } } } @@ -179,21 +183,13 @@ export class KeyBackupViewModel extends ViewModel { } showPhraseSetup(): void { - if (this._status === Status.Setup) { - this._setupKeyType = KeyType.Passphrase; - this.emitChange("setupKeyType"); - } + this._setupKeyType = KeyType.Passphrase; + this.emitChange("status"); } showKeySetup(): void { - if (this._status === Status.Setup) { - this._setupKeyType = KeyType.Passphrase; - this.emitChange("setupKeyType"); - } - } - - get setupKeyType(): KeyType { - return this._setupKeyType; + this._setupKeyType = KeyType.RecoveryKey; + this.emitChange("status"); } private async _enterCredentials(keyType, credential, setupDehydratedDevice): Promise { diff --git a/src/platform/web/ui/session/settings/KeyBackupSettingsView.ts b/src/platform/web/ui/session/settings/KeyBackupSettingsView.ts index 28c4febf..668f4f17 100644 --- a/src/platform/web/ui/session/settings/KeyBackupSettingsView.ts +++ b/src/platform/web/ui/session/settings/KeyBackupSettingsView.ts @@ -27,14 +27,8 @@ export class KeyBackupSettingsView extends TemplateView { switch (status) { case Status.Enabled: return renderEnabled(t, vm); case Status.NewVersionAvailable: return renderNewVersionAvailable(t, vm); - case Status.Setup: { - if (vm.setupKeyType === KeyType.Passphrase) { - return renderEnableFromPhrase(t, vm); - } else { - return renderEnableFromKey(t, vm); - } - break; - } + case Status.SetupWithPassphrase: return renderEnableFromPhrase(t, vm); + case Status.SetupWithRecoveryKey: return renderEnableFromKey(t, vm); case Status.Pending: return t.p(vm.i18n`Waiting to go onlineā€¦`); } }),