'use client' import { useState, useCallback } from 'react' import SearchBar from './SearchBar' import SearchResults from './SearchResults' import { searchItems } from '@/lib/actions' interface ItemWithList { id: string title: string description: string | null completed: boolean priority: string dueDate: Date | null tags: any notes: string | null list: { id: string title: string color: string } } export default function GlobalSearch() { const [searchQuery, setSearchQuery] = useState('') const [searchResults, setSearchResults] = useState([]) const [isSearching, setIsSearching] = useState(false) const handleSearch = useCallback(async (query: string) => { setSearchQuery(query) if (!query.trim()) { setSearchResults([]) setIsSearching(false) return } setIsSearching(true) try { const results = await searchItems(query) setSearchResults(results as ItemWithList[]) } catch (error) { console.error('Search error:', error) setSearchResults([]) } finally { setIsSearching(false) } }, []) const handleClose = useCallback(() => { setSearchQuery('') setSearchResults([]) }, []) return (
{searchQuery.trim() && ( )}
) }