asp-smart-ui-plus-test
Version:
A Component Library for Vue 3
20 lines (17 loc) • 563 B
JavaScript
import { ref } from 'vue';
function useCountDown(initialCountDown = 60) {
const remainingSeconds = ref(initialCountDown);
let countDownTimeout = null;
const startCountDown = () => {
remainingSeconds.value--;
if (remainingSeconds.value > 0) {
countDownTimeout = setTimeout(startCountDown, 1e3);
} else {
countDownTimeout && clearTimeout(countDownTimeout);
countDownTimeout = null;
remainingSeconds.value = initialCountDown;
}
};
return { remainingSeconds, startCountDown };
}
export { useCountDown as default };