UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 1.34 kB
{"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"}