import { useState, useEffect } from 'react'; import './SearchInput.css'; interface SearchInputProps { value: string; onChange: (value: string) => void; placeholder?: string; debounceMs?: number; className?: string; } export function SearchInput({ value, onChange, placeholder = 'Search...', debounceMs = 300, className = '', }: SearchInputProps) { const [localValue, setLocalValue] = useState(value); useEffect(() => { setLocalValue(value); }, [value]); useEffect(() => { const timer = setTimeout(() => { if (localValue !== value) { onChange(localValue); } }, debounceMs); return () => clearTimeout(timer); }, [localValue, debounceMs, onChange, value]); return (