41 lines
1.2 KiB
JavaScript

"use strict";
let timer = null;
let endTime = null;
const getElement = selector => document.querySelector(selector);
const padValue = value => value.toString().padStart(2, "0");
const displayTimer = () => {
const now = new Date();
const diff = endTime.getTime() - now.getTime();
if (diff <= 0) {
clearInterval(timer);
getElement("#display_timer").textContent = "";
alert("Time's up!!");
} else {
const timerDate = new Date(diff);
const minutes = padValue(timerDate.getMinutes());
const seconds = padValue(timerDate.getSeconds());
getElement("#display_timer").textContent = `${minutes}:${seconds}`;
}
}
const startTimer = () => {
let minutes = NaN;
while (!(minutes > 0 && minutes < 10)) {
minutes = parseInt(prompt("Please enter 1 to 10 minutes."));
}
endTime = new Date();
endTime.setMinutes(endTime.getMinutes() + minutes);
// display timer and then start interval for timer
displayTimer();
timer = setInterval(displayTimer, 1000);
}
document.addEventListener("DOMContentLoaded", () => {
// attach event handler for timer button
getElement("#start_timer").addEventListener("click", startTimer);
});