Skip to content

Commit 3c2d401

Browse files
committed
fix: replace searchResults state with useMemo to fix set-state-in-effect lint error
1 parent 94f4287 commit 3c2d401

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

src/GraphView.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,14 @@ export default function GraphView({
189189
// Search
190190
const [showSearch, setShowSearch] = useState(false)
191191
const [searchQuery, setSearchQuery] = useState('')
192-
const [searchResults, setSearchResults] = useState<GraphNode[]>([])
193192
const [searchIndex, setSearchIndex] = useState(0)
194193
const searchRef = useRef<HTMLInputElement>(null)
195194

195+
const searchResults = useMemo(() => {
196+
if (!showSearch) return []
197+
return graphData.nodes.filter((n) => fuzzyMatch(n.name, searchQuery))
198+
}, [searchQuery, showSearch, graphData.nodes])
199+
196200
const focusOnNode = useCallback((nodeId: string) => {
197201
const fg = fgRef.current
198202
if (!fg) return
@@ -262,13 +266,6 @@ export default function GraphView({
262266
return false
263267
}
264268

265-
useEffect(() => {
266-
if (!showSearch) return
267-
const filtered = graphData.nodes.filter((n) => fuzzyMatch(n.name, searchQuery))
268-
setSearchResults(filtered)
269-
setSearchIndex(0)
270-
}, [searchQuery, showSearch, graphData.nodes])
271-
272269
const handleSearchKeyDown = useCallback(
273270
(e: React.KeyboardEvent) => {
274271
if (e.key === 'ArrowDown') {
@@ -342,7 +339,10 @@ export default function GraphView({
342339
<input
343340
ref={searchRef}
344341
value={searchQuery}
345-
onChange={(e) => setSearchQuery(e.target.value)}
342+
onChange={(e) => {
343+
setSearchQuery(e.target.value)
344+
setSearchIndex(0)
345+
}}
346346
onKeyDown={handleSearchKeyDown}
347347
placeholder="Search notes…"
348348
style={{

0 commit comments

Comments
 (0)