import { useMemo, useState } from "react"; export default function useDebounce(func: Function, delay: number) { const [id, setId] = useState(null) return useMemo( (...args) => { if (id) { clearTimeout(id) } else { setId( window.setTimeout(() => { setId(null) func(...args) }, delay) ) } }, [func] ) }