{"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","_a"],"mappings":"sHAQaA,EAAc,CAAC,CAAC,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAY,MAAiB,CAC1E,MAAMC,EAAgBC,EAAAA,OAA0B,EAEhDC,EAAAA,UAAU,IAAM,CACZF,EAAc,QAAUH,CAAA,EACzB,CAACA,CAAQ,CAAC,EAEbK,EAAAA,UAAU,IAAM,CACR,IAAAC,EAIA,OAAAL,IAAa,MAAQC,IAChBI,EAAA,YAJI,IAAM,QACfC,EAAAJ,EAAc,UAAd,MAAAI,EAAA,KAAAJ,EACJ,EAE2BF,CAAQ,GAE5B,IAAM,CACTK,GAAM,cAAcA,CAAE,CAC1B,CAAA,EACD,CAACJ,EAAWD,CAAQ,CAAC,CAC5B"}