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