@suspensive/react
Version:
Suspensive interfaces for react
16 lines (14 loc) • 430 B
JavaScript
import { useCallback, useEffect, useRef } from "react";
//#region src/hooks/useTimeout.ts
const useTimeout = (fn, ms) => {
const fnRef = useRef(fn);
fnRef.current = fn;
const fnPreserved = useCallback(() => fnRef.current(), []);
useEffect(() => {
const id = setTimeout(fnPreserved, ms);
return () => clearTimeout(id);
}, [fnPreserved, ms]);
};
//#endregion
export { useTimeout };
//# sourceMappingURL=useTimeout.mjs.map