chore(react/ribbon): bring back note info auto-refresh

This commit is contained in:
Elian Doran 2025-08-22 19:07:04 +03:00
parent 77551b1fed
commit c5bb310613
No known key found for this signature in database

View File

@ -1,4 +1,4 @@
import { useEffect, useState } from "preact/hooks"; import { useCallback, useEffect, useState } from "preact/hooks";
import { t } from "../../services/i18n"; import { t } from "../../services/i18n";
import { TabContext } from "./ribbon-interface"; import { TabContext } from "./ribbon-interface";
import { MetadataResponse, NoteSizeResponse, SubtreeSizeResponse } from "@triliumnext/commons"; import { MetadataResponse, NoteSizeResponse, SubtreeSizeResponse } from "@triliumnext/commons";
@ -7,6 +7,7 @@ import Button from "../react/Button";
import { formatDateTime } from "../../utils/formatters"; import { formatDateTime } from "../../utils/formatters";
import { formatSize } from "../../services/utils"; import { formatSize } from "../../services/utils";
import LoadingSpinner from "../react/LoadingSpinner"; import LoadingSpinner from "../react/LoadingSpinner";
import { useTriliumEventBeta } from "../react/hooks";
export default function NoteInfoTab({ note }: TabContext) { export default function NoteInfoTab({ note }: TabContext) {
const [ metadata, setMetadata ] = useState<MetadataResponse>(); const [ metadata, setMetadata ] = useState<MetadataResponse>();
@ -14,7 +15,7 @@ export default function NoteInfoTab({ note }: TabContext) {
const [ noteSizeResponse, setNoteSizeResponse ] = useState<NoteSizeResponse>(); const [ noteSizeResponse, setNoteSizeResponse ] = useState<NoteSizeResponse>();
const [ subtreeSizeResponse, setSubtreeSizeResponse ] = useState<SubtreeSizeResponse>(); const [ subtreeSizeResponse, setSubtreeSizeResponse ] = useState<SubtreeSizeResponse>();
useEffect(() => { function refresh() {
if (note) { if (note) {
server.get<MetadataResponse>(`notes/${note?.noteId}/metadata`).then(setMetadata); server.get<MetadataResponse>(`notes/${note?.noteId}/metadata`).then(setMetadata);
} }
@ -22,9 +23,15 @@ export default function NoteInfoTab({ note }: TabContext) {
setNoteSizeResponse(undefined); setNoteSizeResponse(undefined);
setSubtreeSizeResponse(undefined); setSubtreeSizeResponse(undefined);
setIsLoading(false); 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 ( return (
<div className="note-info-widget"> <div className="note-info-widget">