fix: use useState for prevTitle tracking in TitleField

Replace useRef with useState for the prevTitle comparison — this is
the canonical React pattern for clearing derived state when props change,
and ensures React properly schedules the re-render.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Test
2026-04-03 15:13:06 +02:00
parent 2bec65a445
commit 96df0e6796

View File

@@ -19,13 +19,13 @@ function useOptimisticTitle(title: string, onTitleChange: (t: string) => void) {
// [optimisticTitle, forPropTitle]: shown after commit until title prop catches up
const [optimistic, setOptimistic] = useState<[string, string] | null>(null)
const isFocusedRef = useRef(false)
const prevTitleRef = useRef(title)
const [prevTitle, setPrevTitle] = useState(title)
// Reset local edit when the title prop changes (e.g. note switch).
// This prevents a stale handleFocus closure from locking in the old note's title
// when focus-editor fires before React re-renders with the new tab.
if (prevTitleRef.current !== title) {
prevTitleRef.current = title
if (prevTitle !== title) {
setPrevTitle(title)
if (localValue !== null) setLocalValue(null)
}