import { SearchIcon } from 'lucide-react'; import { useEffect, useState } from 'react'; import { useDebounceValue } from '../../hooks/use-debounce'; type AICourseSearchProps = { value: string; onChange: (value: string) => void; }; export function AICourseSearch(props: AICourseSearchProps) { const { value: defaultValue, onChange } = props; const [searchTerm, setSearchTerm] = useState(defaultValue); const debouncedSearchTerm = useDebounceValue(searchTerm, 500); useEffect(() => { setSearchTerm(defaultValue); }, [defaultValue]); useEffect(() => { if (debouncedSearchTerm && debouncedSearchTerm.length < 3) { return; } if (debouncedSearchTerm === defaultValue) { return; } onChange(debouncedSearchTerm); }, [debouncedSearchTerm]); return (
setSearchTerm(e.target.value)} />
); }