Всем привет!
Нужно написать таймер на js. Если на реакте еще примерно понимаю, как написать, там удобные стейты есть, то тут даже не могу себе наметить структуру кода(
Смысл таймера в том, что есть "цикл": сначала 25мин, потом 5 мин, потом снова 25 мин, и после этого 15мин. И таких "итераций цикла" пользователь может добавить сколько угодно. При этом таймеры должны переключаться автоматически.
Вроде и понимаю, что делается как-то через setTimeout, но как не кручу их, все равно работает не корректно.
Сами таймеры у меня написаны, однако дальше зашла в тупик и не понимаю, что с ними делать. Кто-то может дать подсказку, куда мне двигаться дальше? (ниже лежит кусок с таймерами, это уже трижды перепиленный вариант, поэтому и выглядит немного нелепо)
startBtn.addEventListener("click", (ev) => {
clearInterval(countingTimerWork);
isPaused = !isPaused;
if (!isPaused) {
countingTimerWork = setInterval(updateTimerWork, 500);
};
});
function countDown() {
let min = Math.floor(timeWork/60);
let sec = timeWork % 60;
sec = sec < 10 ? `0${sec}` : sec;
timerWork.innerHTML = `${min}:${sec}`;
timeWork--;
console.log(timeWork)
return
}
function updateTimerWork() {
countDown(5);
if (timeWork < 0) {
clearInterval(countingTimerWork);
console.log("работа");
countingShortBreak = setInterval(updateShortBreak, 500);
};
};
function updateShortBreak() {
countDown(6);
if (timeWork < 0) {
console.log('маленький перерыв')
clearInterval(countingShortBreak);
countingLongBreak = setInterval(updateLongBreak, 500);
};
};
function updateLongBreak() {
countDown(4);
if (timeWork < 0) {
console.log('большой перерыв')
clearInterval(countingLongBreak);
};
};