Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
removed redundant code, added code to stop alarm if runnng
  • Loading branch information
asaniDev committed Dec 16, 2025
commit 24540869f0ca71af8a7d9269eb77d882eded999e
67 changes: 23 additions & 44 deletions Sprint-3/alarmclock/alarmclock.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,37 @@ let changeBgColor = false;
function setAlarm() {
inputTime = Number(document.querySelector("#alarmSet").value);

if (Number.isInteger(inputTime) && inputTime >= 0) {
if (inputTime === 10) {
changeBgColor = true;
} else if (inputTime === 0) {
displayTime(inputTime);
playAlarm();
document.querySelector("#alarmSet").value = "";
}
if (!Number.isInteger(inputTime) || inputTime < 0) {
return;
}
if (inputTime === 10) {
changeBgColor = true;
} else if (inputTime === 0) {
displayTime(inputTime);
if (timer) {
clearInterval(timer);
timer = null;
}
timer = setInterval(countDown, 1000);
playAlarm();
document.querySelector("#alarmSet").reset();
}
displayTime(inputTime);
if (typeof audio !== "undefined" && audio) {
audio.pause();
try {
audio.currentTime = 0;
} catch (e) {}
audio.loop = false; // disable looping if it was set
}
if (timer) {
clearInterval(timer);
}
timer = setInterval(countDown, 1000);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the app need to execute the code on line 20 when inputTime is 0?

Can you figure out what would happen when line 20 is executed when inputTime is 0? Even though the side-effect is almost unnoticeable, it is important we (as a programmer) recognise what our code do exactly.

}
Comment on lines +13 to +21
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When inputTime is 0, can you identify all the code between line 11 and 30 that will be executed? And among them, which code are unnecessarily executed?

Consider organising the code in the following maner:

  // Step 1: Reset everything (timer, audio, background, ...) before starting a new countdown
  // Note: Can also consider implement a function to reset everything and then call the function here
  ...
  
  // Step 2; Validate input
  ...
  
  // Step 3: Start a new countdown depending on the value of `inputTime`
  ...


function displayTime(totalTime) {
const seconds = totalTime % 60;
const minutes = (totalTime - seconds) / 60;
const timeLeft = document.querySelector("#timeRemaining");
timeLeft.innerText = `Time Remaining: ${minutes
const timeLeft = document.querySelector("#theTime");
timeLeft.innerText = `${minutes.toString().padStart(2, 0)}:${seconds
.toString()
.padStart(2, 0)}:${seconds.toString().padStart(2, 0)}`;
.padStart(2, 0)}`;
}

function countDown() {
Expand Down Expand Up @@ -83,31 +90,3 @@ function pauseAlarm() {
}

window.onload = setup;

/*
Given the user has entered a number in the input field When the user clicks the “Set Alarm” button Then the “Time Remaining” title should update to show the entered number in mm:ss format
take value from in input field and store it in a variable inputTime
check inputTime value is within the accepted range?
take variable inputTime and display it in time remaining section


Given the alarm is set with a valid time When one second passes Then the “Time Remaining” title should decrement by 1 second
the the value for time remaining
check its a valid time (greater than 00:00)
decrease value of time remaining by 1 sec for each sec that passes

Given the alarm is set with a time of 00:00 When the timer reaches 00:00 Then the alarm sound should play continuously
check time remaining, if it is equal to 00:00 then sound alarm


Given the alarm sound is currently playing When the user clicks the “Stop Alarm” button Then the alarm sound should stop playing
check if stop alarm button has been pressed
if true then check if alarm sound is playing then stop alarm sound if true

Given the alarm is set with a time of 00:10 When the timer reaches 00:00 Then the background color should change And the alarm sound should play
if inputTime is 00:10 and timer reaches 0 the change background color
play alarm sound

Given the user has not set an alarm When the page first loads Then the “Time Remaining” title should show 00:00 And no alarm sound should play
when page loads time remaining should 0 and no alarm sound should play
*/