UNPKG

hooks-me

Version:

<div align="center"> <h1>hooks-me</h1> <div>React useful hooks.</div>

25 lines (24 loc) 794 B
import { useCallback, useEffect, useRef } from "react"; var useTimeout = function (callback, delay) { var callbackRef = useRef(callback); var timeoutRef = useRef(); useEffect(function () { callbackRef.current = callback; }, [callback]); var set = useCallback(function () { timeoutRef.current = setTimeout(function () { return callbackRef.current(); }, delay); }, [delay]); var clear = useCallback(function () { timeoutRef.current && clearTimeout(timeoutRef.current); }, []); useEffect(function () { set(); return clear; }, [delay, set, clear]); var reset = useCallback(function () { clear(); set(); }, [clear, set]); return { reset: reset, clear: clear }; }; export default useTimeout;