UNPKG

@rtdui/hooks

Version:

React hooks library base on @mantine/hooks

38 lines (36 loc) 916 B
'use client'; let raf = (callback) => +setTimeout(callback, 16); let caf = (num) => clearTimeout(num); if (typeof window !== "undefined" && "requestAnimationFrame" in window) { raf = (callback) => window.requestAnimationFrame(callback); caf = (handle) => window.cancelAnimationFrame(handle); } let rafUUID = 0; const rafIds = /* @__PURE__ */ new Map(); function cleanup(id) { rafIds.delete(id); } const wrapperRaf = (callback, times = 1) => { rafUUID += 1; const id = rafUUID; function callRef(leftTimes) { if (leftTimes === 0) { cleanup(id); callback(); } else { const realId = raf(() => { callRef(leftTimes - 1); }); rafIds.set(id, realId); } } callRef(times); return id; }; wrapperRaf.cancel = (id) => { const realId = rafIds.get(id); cleanup(id); return caf(realId); }; export { wrapperRaf as default }; //# sourceMappingURL=raf.mjs.map