UNPKG

hooks-me

Version:

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

27 lines (26 loc) 941 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var useTimeout = function (callback, delay) { var callbackRef = (0, react_1.useRef)(callback); var timeoutRef = (0, react_1.useRef)(); (0, react_1.useEffect)(function () { callbackRef.current = callback; }, [callback]); var set = (0, react_1.useCallback)(function () { timeoutRef.current = setTimeout(function () { return callbackRef.current(); }, delay); }, [delay]); var clear = (0, react_1.useCallback)(function () { timeoutRef.current && clearTimeout(timeoutRef.current); }, []); (0, react_1.useEffect)(function () { set(); return clear; }, [delay, set, clear]); var reset = (0, react_1.useCallback)(function () { clear(); set(); }, [clear, set]); return { reset: reset, clear: clear }; }; exports.default = useTimeout;