UNPKG

tav-ui

Version:
1 lines 2.32 kB
{"version":3,"file":"useCountdown2.mjs","sources":["../../../../../../../packages/components/count-down/src/useCountdown.ts"],"sourcesContent":["import { ref, unref } from 'vue'\nimport { tryOnUnmounted } from '@vueuse/core'\n\nexport function useCountdown(count: number) {\n const currentCount = ref(count)\n\n const isStart = ref(false)\n\n let timerId: ReturnType<typeof setInterval> | null\n\n function clear() {\n timerId && window.clearInterval(timerId)\n }\n\n function stop() {\n isStart.value = false\n clear()\n timerId = null\n }\n\n function start() {\n if (unref(isStart) || !!timerId) {\n return\n }\n isStart.value = true\n timerId = setInterval(() => {\n if (unref(currentCount) === 1) {\n stop()\n currentCount.value = count\n } else {\n currentCount.value -= 1\n }\n }, 1000)\n }\n\n function reset() {\n currentCount.value = count\n stop()\n }\n\n function restart() {\n reset()\n start()\n }\n\n tryOnUnmounted(() => {\n reset()\n })\n\n return { start, reset, restart, clear, stop, currentCount, isStart }\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAClC,EAAE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,EAAE,IAAI,OAAO,CAAC;AACd,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,SAAS,IAAI,GAAG;AAClB,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC1B,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,GAAG;AACH,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AACrC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;AACzB,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM;AAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AACnC,OAAO,MAAM;AACb,QAAQ,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;AAChC,OAAO;AACP,KAAK,EAAE,GAAG,CAAC,CAAC;AACZ,GAAG;AACH,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,EAAE,CAAC;AACX,GAAG;AACH,EAAE,SAAS,OAAO,GAAG;AACrB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG;AACH,EAAE,cAAc,CAAC,MAAM;AACvB,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACvE;;;;"}