// useDebouncedCallback.tsx import { useEffect, useState } from "preact/hooks"; const useDebouncedCallback = ( callback: (...args: any[]) => void, delay: number, ) => { const [debouncedCallback, setDebouncedCallback] = useState(() => callback); useEffect(() => { const debounceHandler = setTimeout(() => { setDebouncedCallback(() => callback); }, delay); return () => { clearTimeout(debounceHandler); }; }, [callback, delay]); return debouncedCallback; }; export default useDebouncedCallback;