Skip to content

Commit fec5e88

Browse files
committed
Delegate to ResetIdentityDialog from SetupEncryptionBody
1 parent 4ac84fa commit fec5e88

File tree

3 files changed

+16
-32
lines changed

3 files changed

+16
-32
lines changed

src/components/structures/auth/CompleteSecurity.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,9 @@ export default class CompleteSecurity extends React.Component<IProps, IState> {
7575
} else if (phase === Phase.ConfirmSkip) {
7676
icon = <span className="mx_CompleteSecurity_headerIcon mx_E2EIcon_warning" />;
7777
title = _t("common|are_you_sure");
78-
} else if (phase === Phase.Busy) {
78+
} else if (phase === Phase.Busy || phase === Phase.ConfirmReset) {
7979
icon = <span className="mx_CompleteSecurity_headerIcon mx_E2EIcon_warning" />;
8080
title = _t("encryption|verification|after_new_login|verify_this_device");
81-
} else if (phase === Phase.ConfirmReset) {
82-
icon = <span className="mx_CompleteSecurity_headerIcon mx_E2EIcon_warning" />;
83-
title = _t("encryption|verification|after_new_login|reset_confirmation");
8481
} else if (phase === Phase.Finished) {
8582
// SetupEncryptionBody will take care of calling onFinished, we don't need to do anything
8683
} else {

src/components/structures/auth/SetupEncryptionBody.tsx

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Copyright 2024 New Vector Ltd.
2+
Copyright 2024, 2025 New Vector Ltd.
33
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
44
55
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
@@ -19,6 +19,7 @@ import { SetupEncryptionStore, Phase } from "../../../stores/SetupEncryptionStor
1919
import EncryptionPanel from "../../views/right_panel/EncryptionPanel";
2020
import AccessibleButton, { type ButtonEvent } from "../../views/elements/AccessibleButton";
2121
import Spinner from "../../views/elements/Spinner";
22+
import { ResetIdentityDialog } from "../../views/dialogs/ResetIdentityDialog";
2223

2324
function keyHasPassphrase(keyInfo: SecretStorageKeyDescription): boolean {
2425
return Boolean(keyInfo.passphrase && keyInfo.passphrase.salt && keyInfo.passphrase.iterations);
@@ -114,12 +115,17 @@ export default class SetupEncryptionBody extends React.Component<IProps, IState>
114115
ev.preventDefault();
115116
const store = SetupEncryptionStore.sharedInstance();
116117
store.reset();
117-
};
118-
119-
private onResetConfirmClick = (): void => {
120-
this.props.onFinished();
121-
const store = SetupEncryptionStore.sharedInstance();
122-
store.resetConfirm();
118+
Modal.createDialog(ResetIdentityDialog, {
119+
onResetFinished: () => {
120+
this.onDoneClick();
121+
},
122+
onCancelClick: () => {},
123+
onFinished: () => {
124+
close();
125+
this.onResetBackClick();
126+
},
127+
variant: "confirm",
128+
});
123129
};
124130

125131
private onResetBackClick = (): void => {
@@ -157,7 +163,7 @@ export default class SetupEncryptionBody extends React.Component<IProps, IState>
157163
<p>{_t("encryption|verification|no_key_or_device")}</p>
158164

159165
<div className="mx_CompleteSecurity_actionRow">
160-
<AccessibleButton kind="primary" onClick={this.onResetConfirmClick}>
166+
<AccessibleButton kind="primary" onClick={this.onResetClick}>
161167
{_t("encryption|verification|reset_proceed_prompt")}
162168
</AccessibleButton>
163169
</div>
@@ -246,23 +252,7 @@ export default class SetupEncryptionBody extends React.Component<IProps, IState>
246252
</div>
247253
</div>
248254
);
249-
} else if (phase === Phase.ConfirmReset) {
250-
return (
251-
<div>
252-
<p>{_t("encryption|verification|verify_reset_warning_1")}</p>
253-
<p>{_t("encryption|verification|verify_reset_warning_2")}</p>
254-
255-
<div className="mx_CompleteSecurity_actionRow">
256-
<AccessibleButton kind="danger_outline" onClick={this.onResetConfirmClick}>
257-
{_t("encryption|verification|reset_proceed_prompt")}
258-
</AccessibleButton>
259-
<AccessibleButton kind="primary" onClick={this.onResetBackClick}>
260-
{_t("action|go_back")}
261-
</AccessibleButton>
262-
</div>
263-
</div>
264-
);
265-
} else if (phase === Phase.Busy || phase === Phase.Loading) {
255+
} else if (phase === Phase.Busy || phase === Phase.Loading || phase == Phase.ConfirmReset) {
266256
return <Spinner />;
267257
} else {
268258
logger.log(`SetupEncryptionBody: Unknown phase ${phase}`);

src/i18n/strings/en_EN.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,6 @@
992992
"accepting": "Accepting…",
993993
"after_new_login": {
994994
"device_verified": "Device verified",
995-
"reset_confirmation": "Really reset verification keys?",
996995
"skip_verification": "Skip verification for now",
997996
"unable_to_verify": "Unable to verify this device",
998997
"verify_this_device": "Verify this device"
@@ -1063,8 +1062,6 @@
10631062
"verify_emoji_prompt": "Verify by comparing unique emoji.",
10641063
"verify_emoji_prompt_qr": "If you can't scan the code above, verify by comparing unique emoji.",
10651064
"verify_later": "I'll verify later",
1066-
"verify_reset_warning_1": "Resetting your verification keys cannot be undone. After resetting, you won't have access to old encrypted messages, and any friends who have previously verified you will see security warnings until you re-verify with them.",
1067-
"verify_reset_warning_2": "Please only proceed if you're sure you've lost all of your other devices and your Recovery Key.",
10681065
"verify_using_device": "Verify with another device",
10691066
"verify_using_key": "Verify with Recovery Key",
10701067
"verify_using_key_or_phrase": "Verify with Recovery Key or Phrase",

0 commit comments

Comments
 (0)