UNPKG

qol-hooks

Version:

A collection of React hooks to improve the quality of life of developers.

28 lines (27 loc) 929 B
import { useEffect, useRef } from "react"; /** * @description A hook to call a function after a specified delay * @param {() => void} callback The function to call after the specified delay * @param {number | null | undefined} delay The delay in milliseconds * * @example```tsx * useTimeout(() => console.log("Hello, World!"), 1000); // Logs "Hello, World!" after 1 second * ``` */ function useTimeout(callback, delay) { const savedCallback = useRef(); useEffect(() => { savedCallback.current = callback; }, [callback]); useEffect(() => { function tick() { var _a; (_a = savedCallback.current) === null || _a === void 0 ? void 0 : _a.call(savedCallback); } if (delay !== null && delay !== undefined) { const id = setTimeout(tick, delay); return () => clearTimeout(id); } }, [delay]); } export default useTimeout;