import { Search } from 'lucide-react'; import { useEffect, useState } from 'react'; import { useDebounceValue } from '../../hooks/use-debounce.ts'; import { Spinner } from '../ReactIcons/Spinner.tsx'; type ExploreAISearchProps = { value: string; total: number; isLoading: boolean; onSubmit: (search: string) => void; }; export function ExploreAISearch(props: ExploreAISearchProps) { const { onSubmit, isLoading = false, total, value: defaultValue } = props; const [term, setTerm] = useState(defaultValue); const debouncedTerm = useDebounceValue(term, 500); useEffect(() => { setTerm(defaultValue); }, [defaultValue]); useEffect(() => { if (debouncedTerm && debouncedTerm.length < 3) { return; } if (debouncedTerm === defaultValue) { return; } onSubmit(debouncedTerm); }, [debouncedTerm]); return (
setTerm(e.target.value)} /> {isLoading && ( )}
{total > 0 && (

{Intl.NumberFormat('en-US', { notation: 'compact', }).format(total)}{' '} results found

)}
); }