diff --git a/src/components/search-dropdown.tsx b/src/components/search-dropdown.tsx index 86017a9..e5f7941 100644 --- a/src/components/search-dropdown.tsx +++ b/src/components/search-dropdown.tsx @@ -22,6 +22,7 @@ export function SearchDropdownComponent() { const router = useRouter(); const inputRef = useRef(null); + const dropdownRef = useRef(null); // we don't need react query, we have react query at home // react query at home: @@ -71,8 +72,26 @@ export function SearchDropdownComponent() { } }; + // close dropdown when clicking outside dropdown + useEffect(() => { + const handleClickOutside = (event: MouseEvent) => { + if ( + dropdownRef.current && + !dropdownRef.current.contains(event.target as Node) + ) { + setIsOpen(false); + inputRef.current?.blur(); + } + }; + + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, [dropdownRef]); + return ( -
+