From 02b0d1fb5e5ba06411882a7a306aa655b4869819 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 5 Aug 2025 18:09:29 +0300 Subject: [PATCH] refactor(react/dialogs): separate alert component --- .../src/widgets/dialogs/delete_notes.tsx | 33 +++++++++---------- apps/client/src/widgets/react/Alert.tsx | 17 ++++++++++ 2 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 apps/client/src/widgets/react/Alert.tsx diff --git a/apps/client/src/widgets/dialogs/delete_notes.tsx b/apps/client/src/widgets/dialogs/delete_notes.tsx index 4a09f5b90..a5b43e035 100644 --- a/apps/client/src/widgets/dialogs/delete_notes.tsx +++ b/apps/client/src/widgets/dialogs/delete_notes.tsx @@ -11,6 +11,7 @@ import froca from "../../services/froca.js"; import FNote from "../../entities/fnote.js"; import link from "../../services/link.js"; import Button from "../react/Button.jsx"; +import Alert from "../react/Alert.jsx"; export interface ResolveOptions { proceed: boolean; @@ -136,27 +137,23 @@ function BrokenRelations({ brokenRelations }: { brokenRelations: DeleteNotesPrev if (brokenRelations.length) { return ( -
-
-

{t("delete_notes.broken_relations_to_be_deleted", { relationCount: brokenRelations.length })}

- -
    - {brokenRelations.map((_, index) => { - return ( -
  • - -
  • - ); - })} -
-
-
+ + + ); } else { return ( -
- {t("delete_notes.no_note_to_delete")} -
+ + {t("delete_notes.no_note_to_delete")} + ); } } diff --git a/apps/client/src/widgets/react/Alert.tsx b/apps/client/src/widgets/react/Alert.tsx new file mode 100644 index 000000000..88b6ce81c --- /dev/null +++ b/apps/client/src/widgets/react/Alert.tsx @@ -0,0 +1,17 @@ +import { ComponentChildren } from "preact"; + +interface AlertProps { + type: "info" | "danger"; + title?: string; + children: ComponentChildren; +} + +export default function Alert({ title, type, children }: AlertProps) { + return ( +
+ {title &&

{title}

} + + {children} +
+ ); +} \ No newline at end of file