{"version":3,"file":"use-interval.cjs","names":[],"sources":["../../src/hooks/use-interval.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useLatestRef } from \"./use-latest-ref\";\n\n/**\n * Reactive `setInterval`. Pass `null` as `delay` to pause. `fn` is stored in\n * a ref so inline callbacks don't reset the interval on every render.\n *\n * @example\n * useInterval(() => poll(), enabled ? 5000 : null);\n */\nexport function useInterval(fn: () => void, delay: number | null): void {\n    const fnRef = useLatestRef(fn);\n\n    useEffect(() => {\n        if (delay === null) return;\n        const id = setInterval(() => fnRef.current(), delay);\n        return () => clearInterval(id);\n    }, [delay, fnRef]);\n}\n"],"mappings":"+DAUA,SAAgB,EAAY,EAAgB,EAA4B,CACpE,IAAM,EAAQ,EAAA,aAAa,CAAE,GAE7B,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,IAAU,KAAM,OACpB,IAAM,EAAK,gBAAkB,EAAM,QAAQ,EAAG,CAAK,EACnD,UAAa,cAAc,CAAE,CACjC,EAAG,CAAC,EAAO,CAAK,CAAC,CACrB"}