diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..aee4b98c6 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,25 +1,62 @@ -function setAlarm() {} +let alarmIntervalId = null; -// DO NOT EDIT BELOW HERE +function setAlarm() { + const input = document.getElementById("alarmSet"); + const heading = document.getElementById("timeRemaining"); + let seconds = parseInt(input.value, 10); -var audio = new Audio("alarmsound.mp3"); + // Reject invalid input instead of silently treating it as 0 + if (!Number.isFinite(seconds) || seconds < 0) { + heading.innerText = "Please enter a valid number of seconds"; + return; + } -function setup() { - document.getElementById("set").addEventListener("click", () => { - setAlarm(); - }); + function formatMMSS(s) { + const mm = Math.floor(s / 60) + .toString() + .padStart(2, "0"); + const ss = (s % 60).toString().padStart(2, "0"); + return `Time Remaining: ${mm}:${ss}`; + } - document.getElementById("stop").addEventListener("click", () => { - pauseAlarm(); - }); -} + heading.innerText = formatMMSS(seconds); + + if (alarmIntervalId) { + clearInterval(alarmIntervalId); + alarmIntervalId = null; + } -function playAlarm() { - audio.play(); + // If it's already zero, play immediately and don't start an interval + if (seconds === 0) { + playAlarm(); + return; + } + + alarmIntervalId = setInterval(() => { + seconds -= 1; + if (seconds > 0) { + heading.innerText = formatMMSS(seconds); + } else { + heading.innerText = formatMMSS(0); + clearInterval(alarmIntervalId); + alarmIntervalId = null; + playAlarm(); + } + }, 1000); } -function pauseAlarm() { - audio.pause(); +function stopAlarm() { + const heading = document.getElementById("timeRemaining"); + + if (alarmIntervalId) { + clearInterval(alarmIntervalId); + alarmIntervalId = null; + } + + heading.innerText = "Time Remaining: 00:00"; } -window.onload = setup; +document.getElementById("set").addEventListener("click", setAlarm); +document.getElementById("stop").addEventListener("click", stopAlarm); + + diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..b180ce889 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,17 +4,16 @@ - Title here + Alarm Clock App +
-

Time Remaining: 00:00

- - + +

Time Remaining: 00:00

-