import { useMemo, useState, useCallback } from 'react' import { createSearchEngine } from '../utils/searchEngine' import { sampleProducts, sampleCategories } from '../data' import { SearchResult } from '../types' export function useSearch() { const [query, setQuery] = useState('') const [results, setResults] = useState([]) const [selectedResult, setSelectedResult] = useState(null) const searchEngine = useMemo( () => createSearchEngine(sampleProducts, sampleCategories), [] ) const handleSearch = useCallback( (searchQuery: string) => { setQuery(searchQuery) if (searchQuery.trim()) { const searchResults = searchEngine.search(searchQuery) setResults(searchResults) } else { setResults([]) } }, [searchEngine] ) const clearSearch = useCallback(() => { setQuery('') setResults([]) setSelectedResult(null) }, []) const selectResult = useCallback((result: SearchResult | null) => { setSelectedResult(result) }, []) return { query, results, selectedResult, handleSearch, clearSearch, selectResult, } }