import { useState, useRef, useEffect } from 'react'; import { Search } from 'lucide-react'; import { Input } from '@/components/ui/input'; import { SearchResults } from './SearchResults'; export function SearchDropdown() { const [query, setQuery] = useState(''); const [isOpen, setIsOpen] = useState(false); const [isFocused, setIsFocused] = useState(false); const searchRef = useRef(null); const inputRef = useRef(null); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (searchRef.current && !searchRef.current.contains(event.target as Node)) { setIsOpen(false); setIsFocused(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); const handleInputChange = (e: React.ChangeEvent) => { const value = e.target.value; setQuery(value); setIsOpen(value.length >= 1); }; const handleInputFocus = () => { setIsFocused(true); if (query.length >= 1) { setIsOpen(true); } }; const handleClose = () => { setIsOpen(false); setQuery(''); inputRef.current?.blur(); }; return (
{isOpen && (
)}
); }