{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { useEffect } from \"react\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\n\n/**\n * React Hook that provides a declarative `setInterval`\n *\n * @param callback the callback to execute at interval\n * @param delay the `setInterval` delay (in ms)\n */\nexport function useInterval(callback: () => void, delay: number | null) {\n  const fn = useCallbackRef(callback)\n\n  useEffect(() => {\n    let intervalId: number | null = null\n    const tick = () => fn()\n    if (delay !== null) {\n      intervalId = window.setInterval(tick, delay)\n    }\n    return () => {\n      if (intervalId) {\n        window.clearInterval(intervalId)\n      }\n    }\n  }, [delay, fn])\n}\n"],"mappings":";;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAQxB,SAAS,YAAY,UAAsB,OAAsB;AACtE,QAAM,KAAK,eAAe,QAAQ;AAElC,YAAU,MAAM;AACd,QAAI,aAA4B;AAChC,UAAM,OAAO,MAAM,GAAG;AACtB,QAAI,UAAU,MAAM;AAClB,mBAAa,OAAO,YAAY,MAAM,KAAK;AAAA,IAC7C;AACA,WAAO,MAAM;AACX,UAAI,YAAY;AACd,eAAO,cAAc,UAAU;AAAA,MACjC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB;","names":[]}