@liveblocks/react-ui
Version:
A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.
1 lines • 1.3 kB
Source Map (JSON)
{"version":3,"file":"use-interval.cjs","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":["useRef","useEffect"],"mappings":";;;;AAKgB,SAAA,WAAA,CACd,UACA,KACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiBA,aAAO,QAAQ,CAAA,CAAA;AAEtC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,OAAU,GAAA,QAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAAA,eAAA,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;;;;"}