UNPKG

@thibault.sh/hooks

Version:

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

2 lines 714 B
'use strict';var react=require('react');function g(u,n=1,s=!1){let[i,c]=react.useState(u),[r,t]=react.useState(!1),e=react.useRef(),d=react.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=react.useCallback(()=>{r&&e.current&&(clearInterval(e.current),e.current=void 0,t(!1));},[r]),m=react.useCallback(()=>{e.current&&(clearInterval(e.current),e.current=void 0),t(!1),c(u);},[u]);return react.useEffect(()=>()=>{e.current&&(clearInterval(e.current),e.current=void 0);},[]),[i,{start:d,pause:v,reset:m,isRunning:r}]}exports.useTimer=g;//# sourceMappingURL=useTimer.cjs.map //# sourceMappingURL=useTimer.cjs.map