UNPKG

@thibault.sh/hooks

Version:

A comprehensive collection of React hooks for browser storage, UI interactions, and more

2 lines 693 B
import {useState,useRef,useCallback,useEffect}from'react';function g(u,n=1,s=!1){let[i,c]=useState(u),[r,t]=useState(!1),e=useRef(),d=useCallback(()=>{r||(t(!0),e.current=setInterval(()=>{c(f=>{let l=s?f-n:f+n;return s&&l<=0?(clearInterval(e.current),t(!1),0):l});},n*1e3));},[r,n,s]),v=useCallback(()=>{r&&e.current&&(clearInterval(e.current),e.current=void 0,t(!1));},[r]),m=useCallback(()=>{e.current&&(clearInterval(e.current),e.current=void 0),t(!1),c(u);},[u]);return useEffect(()=>()=>{e.current&&(clearInterval(e.current),e.current=void 0);},[]),[i,{start:d,pause:v,reset:m,isRunning:r}]}export{g as useTimer};//# sourceMappingURL=useTimer.mjs.map //# sourceMappingURL=useTimer.mjs.map