import { useCallback, useEffect, useRef } from "react";
function useDebounceAfter(fn, delay, dep = []) {
const { current } = useRef({ fn, timer: null });
useEffect(
function() {
current.fn = fn;
},
[fn]
);
return useCallback(function f(...args) {
if (current.timer) {
clearTimeout(current.timer);
delete current.timer;
}
current.timer = setTimeout(() => {
current.fn.call(this, ...args);
}, delay);
}, dep);
}
export default useDebounceAfter;
const delaySubmit = useDebounceAfter(function() {
submitWordList();
}, 500);