diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..9f2f24c32 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,46 @@ -function setAlarm() {} +const heading = document.getElementById("timeRemaining"); +const input = document.getElementById("alarmSet"); +const setBtn = document.getElementById("set"); + +let remaining = 0; +let intervalId = null; + +function format(seconds) { + const minute = String(Math.floor(seconds / 60)).padStart(2, "0"); + const second = String(seconds % 60).padStart(2, "0"); + return `${m}:${s}`; +} + +function updateHeading() { + heading.textContent = `Time Remaining: ${format(remaining)}`; +} + +function tick() { + if (remaining <= 0) { + clearInterval(intervalId); + intervalId = null; + updateHeading(); + if (typeof window.playAlarm === "function") { + window.playAlarm(); + } + return; + } + remaining -= 1; + updateHeading(); +} + +function setAlarm() { + const value = parseInt(input.value, 10); + // Guard clause: ignore invalid or non-positive input + if (!Number.isFinite(value) || value <= 0) return; + if (intervalId) clearInterval(intervalId); + remaining = value; + updateHeading(); + intervalId = setInterval(tick, 1000); +} + +setBtn.addEventListener("click", setAlarm); +updateHeading(); // DO NOT EDIT BELOW HERE diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..ff2d3b453 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,7 +4,7 @@ - Title here + Alarm clock app