From 2ad4b26c9ee552ffee75fd1fe9710cfa416bb319 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 6 Aug 2025 18:01:26 +0300 Subject: [PATCH] chore(react/dialogs): reintroduce footer in note revisions --- apps/client/src/widgets/dialogs/revisions.tsx | 33 ++++++++++++++++++- .../client/src/widgets/react/ActionButton.tsx | 13 ++++++++ apps/client/src/widgets/react/Modal.tsx | 11 ++++--- 3 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 apps/client/src/widgets/react/ActionButton.tsx diff --git a/apps/client/src/widgets/dialogs/revisions.tsx b/apps/client/src/widgets/dialogs/revisions.tsx index cc7438cf2..d66a04fda 100644 --- a/apps/client/src/widgets/dialogs/revisions.tsx +++ b/apps/client/src/widgets/dialogs/revisions.tsx @@ -16,6 +16,8 @@ import protected_session_holder from "../../services/protected_session_holder"; import { renderMathInElement } from "../../services/math"; import { CSSProperties } from "preact/compat"; import open from "../../services/open"; +import ActionButton from "../react/ActionButton"; +import options from "../../services/options"; interface RevisionsDialogProps { note?: FNote; @@ -54,7 +56,9 @@ function RevisionsDialogComponent({ note }: RevisionsDialogProps) { toast.showMessage(t("revisions.revisions_deleted")); } }}/>) - } + } + footer={} + footerStyle={{ paddingTop: 0, paddingBottom: 0 }} > ; + } + + let revisionsNumberLimit: number | string = parseInt(note?.getLabelValue("versioningLimit") ?? ""); + if (!Number.isInteger(revisionsNumberLimit)) { + revisionsNumberLimit = options.getInt("revisionSnapshotNumberLimit") ?? 0; + } + if (revisionsNumberLimit === -1) { + revisionsNumberLimit = "∞"; + } + + return <> + + {t("revisions.snapshot_interval", { seconds: options.getInt("revisionSnapshotTimeInterval") })} + + + {t("revisions.maximum_revisions", { number: revisionsNumberLimit })} + + appContext.tabManager.openContextWithNote("_optionsOther", { activate: true })} + /> + ; +} + export default class RevisionsDialog extends ReactBasicWidget { private props: RevisionsDialogProps = {}; diff --git a/apps/client/src/widgets/react/ActionButton.tsx b/apps/client/src/widgets/react/ActionButton.tsx new file mode 100644 index 000000000..5adacc5c1 --- /dev/null +++ b/apps/client/src/widgets/react/ActionButton.tsx @@ -0,0 +1,13 @@ +interface ActionButtonProps { + text: string; + icon: string; + onClick?: () => void; +} + +export default function ActionButton({ text, icon, onClick }: ActionButtonProps) { + return