import Input, { type InputProps } from '@/components/ui/form/Input' import { useEffect, useState, type FC } from 'react' interface DebouncedInputProps extends Omit { value: string | number onChange: (value: string | number) => void debounce?: number } const DebouncedInput: FC = ({ value: initialValue, onChange, debounce = 500, ...props }) => { const [value, setValue] = useState(initialValue) useEffect(() => { setValue(initialValue) }, [initialValue]) useEffect(() => { const timeout = setTimeout(() => { onChange(value) }, debounce) return () => { clearTimeout(timeout) } }, [value]) return ( { setValue(e.target.value) }} /> ) } export default DebouncedInput