From c5bb3106137f3be4b8267c4b5ba81c1983746822 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 22 Aug 2025 19:07:04 +0300 Subject: [PATCH] chore(react/ribbon): bring back note info auto-refresh --- apps/client/src/widgets/ribbon/NoteInfoTab.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/client/src/widgets/ribbon/NoteInfoTab.tsx b/apps/client/src/widgets/ribbon/NoteInfoTab.tsx index 466410b26..889b28b21 100644 --- a/apps/client/src/widgets/ribbon/NoteInfoTab.tsx +++ b/apps/client/src/widgets/ribbon/NoteInfoTab.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "preact/hooks"; +import { useCallback, useEffect, useState } from "preact/hooks"; import { t } from "../../services/i18n"; import { TabContext } from "./ribbon-interface"; import { MetadataResponse, NoteSizeResponse, SubtreeSizeResponse } from "@triliumnext/commons"; @@ -7,6 +7,7 @@ import Button from "../react/Button"; import { formatDateTime } from "../../utils/formatters"; import { formatSize } from "../../services/utils"; import LoadingSpinner from "../react/LoadingSpinner"; +import { useTriliumEventBeta } from "../react/hooks"; export default function NoteInfoTab({ note }: TabContext) { const [ metadata, setMetadata ] = useState(); @@ -14,7 +15,7 @@ export default function NoteInfoTab({ note }: TabContext) { const [ noteSizeResponse, setNoteSizeResponse ] = useState(); const [ subtreeSizeResponse, setSubtreeSizeResponse ] = useState(); - useEffect(() => { + function refresh() { if (note) { server.get(`notes/${note?.noteId}/metadata`).then(setMetadata); } @@ -22,9 +23,15 @@ export default function NoteInfoTab({ note }: TabContext) { setNoteSizeResponse(undefined); setSubtreeSizeResponse(undefined); setIsLoading(false); - }, [ note?.noteId ]); + } - console.log("Got ", noteSizeResponse, subtreeSizeResponse); + useEffect(refresh, [ note?.noteId ]); + useTriliumEventBeta("entitiesReloaded", ({ loadResults }) => { + const noteId = note?.noteId; + if (noteId && (loadResults.isNoteReloaded(noteId) || loadResults.isNoteContentReloaded(noteId))) { + refresh(); + } + }); return (