{"version":3,"file":"use-interval.mjs","sources":["../../src/utils/use-interval.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Run a function at a given time interval.\n */\nexport function useInterval(\n  callback: () => void | false,\n  delay?: number | false\n) {\n  const latestCallback = useRef(callback);\n\n  useEffect(() => {\n    latestCallback.current = callback;\n  }, [callback]);\n\n  useEffect(() => {\n    if (!delay && delay !== 0) {\n      return;\n    }\n\n    const id = setInterval(() => {\n      if (latestCallback.current() === false) {\n        clearInterval(id);\n      }\n    }, delay);\n\n    return () => clearInterval(id);\n  }, [delay]);\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,WAAA,CACd,UACA,KACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiB,OAAO,QAAQ,CAAA,CAAA;AAEtC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,OAAU,GAAA,QAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,KAAS,IAAA,KAAA,KAAU,CAAG,EAAA;AACzB,MAAA,OAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAI,IAAA,cAAA,CAAe,OAAQ,EAAA,KAAM,KAAO,EAAA;AACtC,QAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,OAClB;AAAA,OACC,KAAK,CAAA,CAAA;AAER,IAAO,OAAA,MAAM,cAAc,EAAE,CAAA,CAAA;AAAA,GAC/B,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACZ;;;;"}