From 67214575fb59b6e9a149fcdd5157604d4e6e2a98 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 1 Aug 2026 12:49:27 +0000 Subject: [PATCH] fix: debounce note title save to prevent focus leak to search field --- apps/web/src/routes/_app/notes.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/web/src/routes/_app/notes.tsx b/apps/web/src/routes/_app/notes.tsx index 73a70ec..e27554f 100644 --- a/apps/web/src/routes/_app/notes.tsx +++ b/apps/web/src/routes/_app/notes.tsx @@ -55,6 +55,8 @@ function NotesPage() { const [selectedNote, setSelectedNote] = useState(null); const [editorContent, setEditorContent] = useState(""); const saveTimerRef = useRef | null>(null); + const titleTimerRef = useRef | null>(null); + const titleTimerRef = useRef | null>(null); const [showBacklinks, setShowBacklinks] = useState(false); const [showVersions, setShowVersions] = useState(false); @@ -114,8 +116,11 @@ function NotesPage() { const handleTitleChange = (title: string) => { if (selectedNote) { - updateMutation.mutate({ id: selectedNote.id, data: { title } }); setSelectedNote({ ...selectedNote, title }); + if (titleTimerRef.current) clearTimeout(titleTimerRef.current); + titleTimerRef.current = setTimeout(() => { + updateMutation.mutate({ id: selectedNote.id, data: { title } }); + }, 500); } };