import React, { useEffect, useState } from "react"; export function useDebounce(debounceTime: number = 300): [string, React.Dispatch>] { const [debouncedValue, setDebouncedValue] = useState(""); const [value, setValue] = useState(""); useEffect(() => { const handler = setTimeout(() => { setDebouncedValue(value); }, debounceTime); return () => { clearTimeout(handler); }; }, [value]); return [debouncedValue, setValue]; }