From 700007696101e66b3592ee22ba04d2ea02f80e97 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 13 Dec 2025 13:26:48 +0200 Subject: [PATCH] feat(layout/inline-title): react to template add/remove --- apps/client/src/widgets/layout/InlineTitle.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/client/src/widgets/layout/InlineTitle.tsx b/apps/client/src/widgets/layout/InlineTitle.tsx index 5029a5ebd..8d13d1588 100644 --- a/apps/client/src/widgets/layout/InlineTitle.tsx +++ b/apps/client/src/widgets/layout/InlineTitle.tsx @@ -18,7 +18,7 @@ import NoteIcon from "../note_icon"; import NoteTitleWidget from "../note_title"; import { Badge, BadgeWithDropdown } from "../react/Badge"; import { FormListItem } from "../react/FormList"; -import { useNoteBlob, useNoteContext, useNoteProperty, useStaticTooltip } from "../react/hooks"; +import { useNoteBlob, useNoteContext, useNoteProperty, useStaticTooltip, useTriliumEvent } from "../react/hooks"; import { joinElements } from "../react/react_utils"; import { useNoteMetadata } from "../ribbon/NoteInfoTab"; import { onWheelHorizontalScroll } from "../widget_utils"; @@ -205,9 +205,15 @@ function TemplateNoteTypes({ noteId }: { noteId: string }) { setTemplates(templateNotes); } - useEffect(() => { - refreshTemplates(); - }, []); + // First load. + useEffect(() => { refreshTemplates(); }, []); + + // React to external changes. + useTriliumEvent("entitiesReloaded", ({ loadResults }) => { + if (loadResults.getAttributeRows().some(attr => attr.type === "label" && attr.name === "template")) { + refreshTemplates(); + } + }); return (