"use client"; import { useEffect, useRef, useState } from "react"; interface SearchInputProps { value: string; onChange: (value: string) => void; } export function SearchInput({ value, onChange }: SearchInputProps) { const [local, setLocal] = useState(value); const timerRef = useRef(null); useEffect(() => { setLocal(value); }, [value]); function handleChange(e: React.ChangeEvent) { const v = e.target.value; setLocal(v); if (timerRef.current) clearTimeout(timerRef.current); timerRef.current = setTimeout(() => onChange(v), 300); } return (
{local && ( )}
); }