fix: restore selectedNoteId as state for re-render, keep ref for content
This commit is contained in:
@@ -80,7 +80,7 @@ const NoteTitleInput = memo(function NoteTitleInput({ noteId, initialTitle }: {
|
|||||||
function NotesPage() {
|
function NotesPage() {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
const [search, setSearch] = useState("");
|
const [search, setSearch] = useState("");
|
||||||
const selectedNoteIdRef = useRef<string | null>(null);
|
const [selectedNoteId, setSelectedNoteId] = useState<string | null>(null);
|
||||||
const [showBacklinks, setShowBacklinks] = useState(false);
|
const [showBacklinks, setShowBacklinks] = useState(false);
|
||||||
const [showVersions, setShowVersions] = useState(false);
|
const [showVersions, setShowVersions] = useState(false);
|
||||||
const selectedNoteRef = useRef<Note | null>(null);
|
const selectedNoteRef = useRef<Note | null>(null);
|
||||||
@@ -99,7 +99,7 @@ function NotesPage() {
|
|||||||
onSuccess: (note) => {
|
onSuccess: (note) => {
|
||||||
queryClient.invalidateQueries({ queryKey: ["notes"] });
|
queryClient.invalidateQueries({ queryKey: ["notes"] });
|
||||||
selectedNoteRef.current = note;
|
selectedNoteRef.current = note;
|
||||||
selectedNoteIdRef.current = note.id;
|
setSelectedNoteId(note.id);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ function NotesPage() {
|
|||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ["notes"] });
|
queryClient.invalidateQueries({ queryKey: ["notes"] });
|
||||||
selectedNoteRef.current = null;
|
selectedNoteRef.current = null;
|
||||||
selectedNoteIdRef.current = null;
|
setSelectedNoteId(null);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ function NotesPage() {
|
|||||||
} catch {
|
} catch {
|
||||||
selectedNoteRef.current = note;
|
selectedNoteRef.current = note;
|
||||||
}
|
}
|
||||||
selectedNoteIdRef.current = note.id;
|
setSelectedNoteId(note.id);
|
||||||
setShowBacklinks(false);
|
setShowBacklinks(false);
|
||||||
setShowVersions(false);
|
setShowVersions(false);
|
||||||
};
|
};
|
||||||
@@ -159,7 +159,7 @@ function NotesPage() {
|
|||||||
onClick={() => selectNote(note)}
|
onClick={() => selectNote(note)}
|
||||||
className={cn(
|
className={cn(
|
||||||
"w-full text-left px-3 py-2 rounded-md text-sm transition-colors",
|
"w-full text-left px-3 py-2 rounded-md text-sm transition-colors",
|
||||||
selectedNoteIdRef.current === note.id ? "bg-accent text-accent-foreground" : "hover:bg-accent/50"
|
selectedNoteId === note.id ? "bg-accent text-accent-foreground" : "hover:bg-accent/50"
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user