From 0cc2a90b36560ae462a4105d719b9be13fa19dc8 Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Fri, 27 Feb 2026 13:35:31 +0000 Subject: [PATCH] Fix: fetchNote now returns default empty entry instead of undefined - Changed return type from Promise to Promise - Returns a default empty diary entry { noteId, note: '', dirty: false } when note doesn't exist - Prevents undefined errors in consumers (DiaryEditor, etc.) - Better UX for new notes - editor shows empty content instead of nothing --- web/src/services/note.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/web/src/services/note.ts b/web/src/services/note.ts index b6918c1..8b13fef 100644 --- a/web/src/services/note.ts +++ b/web/src/services/note.ts @@ -114,7 +114,7 @@ const saveNote = async (note: DiaryEntry) => { return localNote; }; -const fetchNote = async (noteId: string): Promise => { +const fetchNote = async (noteId: string): Promise => { console.log("fetching note", noteId); const db = await openDatabase(); let cachedNote = await db.get('notes', noteId); @@ -138,7 +138,16 @@ const fetchNote = async (noteId: string): Promise => { console.error(getApiErrorMessage(error, "Network error")); } } - return cachedNote + // Return cached note or create a default empty entry + if (cachedNote) { + return cachedNote; + } + // Return a default empty diary entry for new notes + return { + noteId, + note: '', + dirty: false, + }; }; if (typeof window !== 'undefined') {