From da96d2bc88e3507cd151358c5bb64672aa2935bd Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 18 Apr 2026 18:08:11 +0300 Subject: [PATCH] feat(revisions): dedicated no revisions modal --- apps/client/src/widgets/dialogs/revisions.css | 6 ++- apps/client/src/widgets/dialogs/revisions.tsx | 52 +++++++++++++++---- 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/apps/client/src/widgets/dialogs/revisions.css b/apps/client/src/widgets/dialogs/revisions.css index ca938047c2..0985839c04 100644 --- a/apps/client/src/widgets/dialogs/revisions.css +++ b/apps/client/src/widgets/dialogs/revisions.css @@ -25,7 +25,7 @@ body.desktop .revisions-dialog { width: 300px; } - .modal-content { + .modal-content-with-sidebar { height: 80vh; } } @@ -85,7 +85,9 @@ body.desktop .revisions-dialog { padding: 20px; } - + .no-items { + padding-block: 3em; + } .revision-list { flex: 1 1 0; diff --git a/apps/client/src/widgets/dialogs/revisions.tsx b/apps/client/src/widgets/dialogs/revisions.tsx index 2fddb65ac3..e9f67d88f5 100644 --- a/apps/client/src/widgets/dialogs/revisions.tsx +++ b/apps/client/src/widgets/dialogs/revisions.tsx @@ -27,6 +27,7 @@ import FormList, { FormDropdownDivider, FormListItem } from "../react/FormList"; import FormToggle from "../react/FormToggle"; import { useTriliumEvent } from "../react/hooks"; import Modal from "../react/Modal"; +import NoItems from "../react/NoItems"; import { RawHtmlBlock } from "../react/RawHtml"; import PdfViewer from "../type_widgets/file/PdfViewer"; @@ -57,10 +58,49 @@ export default function RevisionsDialog() { } }, [ note, refreshCounter ]); + const hasRevisions = !!revisions?.length; + if (revisions?.length && !currentRevision) { setCurrentRevision(revisions[0]); } + const onHidden = () => { + setShown(false); + setShowDiff(true); + setNote(undefined); + setCurrentRevision(undefined); + setRevisions(undefined); + }; + + if (!hasRevisions) { + return ( + { + setRefreshCounter(c => c + 1); + setCurrentRevision(undefined); + }} + onAllDeleted={() => { + setRevisions([]); + setCurrentRevision(undefined); + }} + hasRevisions={false} + /> + )} + onHidden={onHidden} + show={shown} + > + + + ); + } + return ( )} sidebar={ @@ -93,13 +133,7 @@ export default function RevisionsDialog() { currentRevision={currentRevision} /> } - onHidden={() => { - setShown(false); - setShowDiff(false); - setNote(undefined); - setCurrentRevision(undefined); - setRevisions(undefined); - }} + onHidden={onHidden} show={shown} > -

{revisionItem?.title ?? t("revisions.no_revisions")}

+

{revisionItem?.title}

);