diff --git a/resources/js/Search/SearchBar.jsx b/resources/js/Search/SearchBar.jsx index 374f3f3f..0b360898 100644 --- a/resources/js/Search/SearchBar.jsx +++ b/resources/js/Search/SearchBar.jsx @@ -53,6 +53,7 @@ export default function SearchBar({ placeholder = 'Search artworks, artists, tag } function collapse() { + if (phase === 'idle' || phase === 'closing') return clearTimeout(openTimerRef.current) setPhase('closing') setOpen(false) @@ -78,11 +79,12 @@ export default function SearchBar({ placeholder = 'Search artworks, artists, tag // ── outside click ──────────────────────────────────────────────────────── useEffect(() => { function onMouse(e) { + if (!isExpanded) return if (wrapperRef.current && !wrapperRef.current.contains(e.target)) collapse() } document.addEventListener('mousedown', onMouse) return () => document.removeEventListener('mousedown', onMouse) - }, []) + }, [isExpanded, phase]) // ── fetch (parallel artworks + tags) ──────────────────────────────────── const fetchSuggestions = useCallback(async (q) => {