From d405160080bbe804f7e9294067d004a7d4dad9d6 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 27 Jul 2023 10:21:20 +0100
Subject: [PATCH] Use PassphraseFields in ExportE2eKeysDialog to enforce
minimum passphrase complexity (#11222)
* Use PassphraseFields in ExportE2eKeysDialog to enforce minimum passphrase complexity
* Tweak copy
* Iterate
* Add tests
* Improve variable naming
* Improve coverage
---
.../dialogs/security/ExportE2eKeysDialog.tsx | 75 ++++++++----
src/i18n/strings/en_EN.json | 7 +-
.../security/ExportE2eKeysDialog-test.tsx | 72 +++++++++++
.../ExportE2eKeysDialog-test.tsx.snap | 112 ++++++++++++++++++
test/test-utils/test-utils.ts | 1 +
5 files changed, 244 insertions(+), 23 deletions(-)
create mode 100644 test/components/views/dialogs/security/ExportE2eKeysDialog-test.tsx
create mode 100644 test/components/views/dialogs/security/__snapshots__/ExportE2eKeysDialog-test.tsx.snap
diff --git a/src/async-components/views/dialogs/security/ExportE2eKeysDialog.tsx b/src/async-components/views/dialogs/security/ExportE2eKeysDialog.tsx
index 139ede4d9c..1f138146b9 100644
--- a/src/async-components/views/dialogs/security/ExportE2eKeysDialog.tsx
+++ b/src/async-components/views/dialogs/security/ExportE2eKeysDialog.tsx
@@ -20,11 +20,13 @@ import React, { ChangeEvent } from "react";
import { MatrixClient } from "matrix-js-sdk/src/client";
import { logger } from "matrix-js-sdk/src/logger";
-import { _t } from "../../../../languageHandler";
+import { _t, _td } from "../../../../languageHandler";
import * as MegolmExportEncryption from "../../../../utils/MegolmExportEncryption";
import BaseDialog from "../../../../components/views/dialogs/BaseDialog";
-import Field from "../../../../components/views/elements/Field";
import { KeysStartingWith } from "../../../../@types/common";
+import PassphraseField from "../../../../components/views/auth/PassphraseField";
+import PassphraseConfirmField from "../../../../components/views/auth/PassphraseConfirmField";
+import Field from "../../../../components/views/elements/Field";
enum Phase {
Edit = "edit",
@@ -46,6 +48,9 @@ interface IState {
type AnyPassphrase = KeysStartingWith