{"version":3,"file":"useInterval.cjs","sources":["../../../../src/internal/hooks/useInterval.ts"],"sourcesContent":["import {useEffect, useRef} from 'react';\n\ntype Props = {\n    callback: () => void;\n    interval: number | null;\n    condition?: boolean;\n};\n\nexport const useInterval = ({callback, interval, condition = true}: Props) => {\n    const savedCallback = useRef<Props['callback']>();\n\n    useEffect(() => {\n        savedCallback.current = callback;\n    }, [callback]);\n\n    useEffect(() => {\n        let id: NodeJS.Timeout;\n        const tick = () => {\n            savedCallback.current?.();\n        };\n        if (interval !== null && condition) {\n            id = setInterval(tick, interval);\n        }\n        return () => {\n            id && clearInterval(id);\n        };\n    }, [condition, interval]);\n};\n"],"names":["useInterval","callback","interval","condition","savedCallback","useRef","useEffect","id"],"mappings":"sHAQaA,EAAc,CAAC,CAAC,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAY,MAAiB,CAC1E,MAAMC,EAAgBC,EAAAA,OAAA,EAEtBC,EAAAA,UAAU,IAAM,CACZF,EAAc,QAAUH,CAC5B,EAAG,CAACA,CAAQ,CAAC,EAEbK,EAAAA,UAAU,IAAM,CACZ,IAAIC,EAIJ,OAAIL,IAAa,MAAQC,IACrBI,EAAK,YAJI,IAAM,CACfH,EAAc,UAAA,CAClB,EAE2BF,CAAQ,GAE5B,IAAM,CACTK,GAAM,cAAcA,CAAE,CAC1B,CACJ,EAAG,CAACJ,EAAWD,CAAQ,CAAC,CAC5B"}