From cfb3607052196132af0b513bb4979cfa7c69a7ce Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 19 Aug 2025 10:37:14 +0300 Subject: [PATCH] feat(react/settings): port totp settings --- apps/client/src/widgets/dialogs/prompt.tsx | 5 +- apps/client/src/widgets/react/Admonition.tsx | 2 +- .../widgets/type_widgets/content_widget.tsx | 5 +- .../options/components/OptionsSection.tsx | 4 +- .../options/multi_factor_authentication.ts | 342 ------------------ .../options/multi_factor_authentication.tsx | 204 +++++++++++ packages/commons/src/lib/server_api.ts | 16 + 7 files changed, 229 insertions(+), 349 deletions(-) delete mode 100644 apps/client/src/widgets/type_widgets/options/multi_factor_authentication.ts create mode 100644 apps/client/src/widgets/type_widgets/options/multi_factor_authentication.tsx diff --git a/apps/client/src/widgets/dialogs/prompt.tsx b/apps/client/src/widgets/dialogs/prompt.tsx index 0edb89774..ea5b71436 100644 --- a/apps/client/src/widgets/dialogs/prompt.tsx +++ b/apps/client/src/widgets/dialogs/prompt.tsx @@ -25,6 +25,7 @@ export interface PromptDialogOptions { defaultValue?: string; shown?: PromptShownDialogCallback; callback?: (value: string | null) => void; + readOnly?: boolean; } function PromptDialogComponent() { @@ -77,7 +78,9 @@ function PromptDialogComponent() { + currentValue={value} onChange={setValue} + readOnly={opts.current?.readOnly} + /> ); diff --git a/apps/client/src/widgets/react/Admonition.tsx b/apps/client/src/widgets/react/Admonition.tsx index 6c4814bbc..d5de3a5c8 100644 --- a/apps/client/src/widgets/react/Admonition.tsx +++ b/apps/client/src/widgets/react/Admonition.tsx @@ -1,7 +1,7 @@ import { ComponentChildren } from "preact"; interface AdmonitionProps { - type: "warning"; + type: "warning" | "note" | "caution"; children: ComponentChildren; } diff --git a/apps/client/src/widgets/type_widgets/content_widget.tsx b/apps/client/src/widgets/type_widgets/content_widget.tsx index 44c67a9eb..95c08747f 100644 --- a/apps/client/src/widgets/type_widgets/content_widget.tsx +++ b/apps/client/src/widgets/type_widgets/content_widget.tsx @@ -1,5 +1,4 @@ import TypeWidget from "./type_widget.js"; -import MultiFactorAuthenticationOptions from './options/multi_factor_authentication.js'; import AiSettingsOptions from "./options/ai_settings.js"; import type FNote from "../../entities/fnote.js"; import type NoteContextAwareWidget from "../note_context_aware_widget.js"; @@ -21,7 +20,7 @@ import TextNoteSettings from "./options/text_notes.jsx"; import CodeNoteSettings from "./options/code_notes.jsx"; import OtherSettings from "./options/other.jsx"; import BackendLogWidget from "./content/backend_log.js"; -import { unmountComponentAtNode } from "preact/compat"; +import MultiFactorAuthenticationSettings from "./options/multi_factor_authentication.js"; const TPL = /*html*/`