diff --git a/apps/client/src/widgets/dialogs/revisions.tsx b/apps/client/src/widgets/dialogs/revisions.tsx index f225d6d8d..a78410a73 100644 --- a/apps/client/src/widgets/dialogs/revisions.tsx +++ b/apps/client/src/widgets/dialogs/revisions.tsx @@ -15,6 +15,7 @@ import { useEffect, useRef, useState } from "preact/hooks"; import protected_session_holder from "../../services/protected_session_holder"; import { renderMathInElement } from "../../services/math"; import { CSSProperties } from "preact/compat"; +import open from "../../services/open"; interface RevisionsDialogProps { note?: FNote; @@ -110,14 +111,16 @@ function RevisionsList({ revisions, onSelect }: { revisions: RevisionItem[], onS function RevisionPreview({ revisionItem }: { revisionItem?: RevisionItem}) { const [ fullRevision, setFullRevision ] = useState(); + const [ needsRefresh, setNeedsRefresh ] = useState(); useEffect(() => { + setNeedsRefresh(false); if (revisionItem) { server.get(`revisions/${revisionItem.revisionId}`).then(setFullRevision); } else { - setFullRevision(undefined); + setFullRevision(undefined); } - }, [revisionItem]); + }, [revisionItem, needsRefresh]); return ( <> @@ -125,15 +128,35 @@ function RevisionPreview({ revisionItem }: { revisionItem?: RevisionItem}) {

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

{(revisionItem &&
{(!revisionItem.isProtected || protected_session_holder.isProtectedSessionAvailable()) && -
)}