import { Dispatch, SetStateAction, useEffect, useState } from 'react'; import { Input } from '../ui/input'; import { Label } from '../ui/label'; import { LoadingSpinner } from 'apps/frontend/src/components/loading-spinner'; import { Loader } from 'lucide-react'; export interface SearchBarProps { stateSetter: Dispatch>; } export interface ISearchBarResult { value: string; } export function SearchBar(props: SearchBarProps) { const [inputValue, setInputValue] = useState(''); const [isLoading, setIsLoading] = useState(false); useEffect(() => { setIsLoading(true); const timer = setTimeout(() => { props.stateSetter({value: inputValue}); setIsLoading(false); }, 750); // Nettoyage du timer return () => clearTimeout(timer); }, [inputValue]); return (
setInputValue(e.target.value)} placeholder="Votre recherche..." />
{isLoading && }
) }