From 80100c7651b55484e5fae310a1a9ddf0710bd313 Mon Sep 17 00:00:00 2001 From: Gregor Klevze Date: Sat, 28 Feb 2026 08:14:12 +0100 Subject: [PATCH] fix: prevent toolbar search flicker on outside page click --- resources/js/Search/SearchBar.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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) => {