fix: stop triggerRefresh() after note creation to prevent stale cache overwrite in production
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 44s

In production (Docker/Next.js standalone), getAllNotes() can return cached results
when called immediately after createNote(skipRevalidation:true). This caused newly
created notes to disappear after the cache reload overwrote the optimistic local state.

Fix: remove triggerRefresh() from both handleCreateNote (NotesTabsView) and
handleNoteCreated (HomeClient). The note is already added optimistically to local
state and does not need a server round-trip.
This commit is contained in:
2026-05-02 20:28:03 +02:00
parent f93752de14
commit 547c5ffecb
2 changed files with 8 additions and 4 deletions

View File

@@ -760,7 +760,7 @@ export function NotesTabsView({
startCreating(async () => {
try {
const newNote = await createNote({
content: noteType === 'checklist' ? '' : '',
content: '',
type: noteType,
checkItems: noteType === 'checklist' ? [{ id: Date.now().toString(), text: '', checked: false }] : undefined,
title: undefined,
@@ -775,7 +775,9 @@ export function NotesTabsView({
})
setSelectedId(newNote.id)
onNoteCreated?.(newNote)
triggerRefresh()
// NOTE: No triggerRefresh() here — the note is already added to items above.
// triggerRefresh() would call getAllNotes() which may return stale cache
// in production (skipRevalidation:true skips cache invalidation).
} catch {
toast.error(t('notes.createFailed') || 'Impossible de créer la note')
}