package.cjs.react-utils.useTimer.useTimer.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of neeto-commons-frontend Show documentation
Show all versions of neeto-commons-frontend Show documentation
A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.
{"version":3,"file":"useTimer.js","names":["_react","require","_neetoCist","subscriptions","interval","initiateInterval","isNotEmpty","setInterval","forEach","callback","cleanupInterval","clearInterval","subscribe","push","splice","indexOf","useTimer","delay","arguments","length","undefined","lastUpdatedRef","useRef","Date","now","useSyncExternalStore","lastUpdated","current","_default","exports"],"sources":["../../../../src/react-utils/useTimer/useTimer.js"],"sourcesContent":["import { useRef, useSyncExternalStore } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\n\nconst subscriptions = [];\nlet interval = null;\n\nconst initiateInterval = () => {\n // Create new interval if there are no subscriptions.\n if (isNotEmpty(subscriptions)) return;\n interval = setInterval(() => {\n subscriptions.forEach(callback => callback());\n }, 1000);\n};\n\nconst cleanupInterval = () => {\n // Cleanup existing interval if there are no more subscriptions\n if (isNotEmpty(subscriptions)) return;\n clearInterval(interval);\n};\n\nconst subscribe = callback => {\n initiateInterval();\n subscriptions.push(callback);\n\n return () => {\n subscriptions.splice(subscriptions.indexOf(callback), 1);\n cleanupInterval();\n };\n};\n\nconst useTimer = (delay = 60) => {\n const lastUpdatedRef = useRef(Date.now());\n\n return useSyncExternalStore(subscribe, () => {\n const now = Date.now();\n let lastUpdated = lastUpdatedRef.current;\n if (now - lastUpdated >= delay * 1000) lastUpdated = now;\n lastUpdatedRef.current = lastUpdated;\n\n return lastUpdated;\n });\n};\n\nexport default useTimer;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAME,aAAa,GAAG,EAAE;AACxB,IAAIC,QAAQ,GAAG,IAAI;AAEnB,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;EAC7B;EACA,IAAI,IAAAC,qBAAU,EAACH,aAAa,CAAC,EAAE;EAC/BC,QAAQ,GAAGG,WAAW,CAAC,YAAM;IAC3BJ,aAAa,CAACK,OAAO,CAAC,UAAAC,QAAQ;MAAA,OAAIA,QAAQ,EAAE;IAAA,EAAC;EAC/C,CAAC,EAAE,IAAI,CAAC;AACV,CAAC;AAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EAC5B;EACA,IAAI,IAAAJ,qBAAU,EAACH,aAAa,CAAC,EAAE;EAC/BQ,aAAa,CAACP,QAAQ,CAAC;AACzB,CAAC;AAED,IAAMQ,SAAS,GAAG,SAAZA,SAASA,CAAGH,QAAQ,EAAI;EAC5BJ,gBAAgB,EAAE;EAClBF,aAAa,CAACU,IAAI,CAACJ,QAAQ,CAAC;EAE5B,OAAO,YAAM;IACXN,aAAa,CAACW,MAAM,CAACX,aAAa,CAACY,OAAO,CAACN,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxDC,eAAe,EAAE;EACnB,CAAC;AACH,CAAC;AAED,IAAMM,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAmB;EAAA,IAAfC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC1B,IAAMG,cAAc,GAAG,IAAAC,aAAM,EAACC,IAAI,CAACC,GAAG,EAAE,CAAC;EAEzC,OAAO,IAAAC,2BAAoB,EAACb,SAAS,EAAE,YAAM;IAC3C,IAAMY,GAAG,GAAGD,IAAI,CAACC,GAAG,EAAE;IACtB,IAAIE,WAAW,GAAGL,cAAc,CAACM,OAAO;IACxC,IAAIH,GAAG,GAAGE,WAAW,IAAIT,KAAK,GAAG,IAAI,EAAES,WAAW,GAAGF,GAAG;IACxDH,cAAc,CAACM,OAAO,GAAGD,WAAW;IAEpC,OAAOA,WAAW;EACpB,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAE,QAAA,GAEaZ,QAAQ;AAAAa,OAAA,cAAAD,QAAA"}