Skip to content

Commit 5a4dc50

Browse files
committed
remove code repition. Pause previous alarm when starting new timer
1 parent 6ebf8fc commit 5a4dc50

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

Sprint-3/alarmclock/alarmclock.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ function setAlarm() {
77
const alarmClockInput = document.getElementById("alarmSet");
88
const clockDisplay = document.getElementById("timeRemaining");
99
let secondsRemaining = parseInt(alarmClockInput.value, 10);
10+
const setBtn = document.getElementById("set");
1011

1112
if (!isValidInput(secondsRemaining)) {
1213
alert("please enter a valid positive integer!");
@@ -15,31 +16,34 @@ function setAlarm() {
1516

1617
clearInterval(intervalId);
1718

19+
// pause any previous alarms when new countdown is set
20+
pauseAlarm();
21+
1822
// display immediately on click;
19-
const minutes = Math.floor(secondsRemaining / 60);
20-
const seconds = secondsRemaining % 60;
21-
displayTime(minutes, seconds, clockDisplay);
23+
displayTime(secondsRemaining, clockDisplay);
2224

2325
intervalId = setInterval(() => {
2426
secondsRemaining--;
2527

2628
if (secondsRemaining <= 0) {
2729
clearInterval(intervalId);
28-
displayTime(0, 0, clockDisplay);
30+
displayTime(0, clockDisplay);
2931
playAlarm();
3032
return;
3133
}
3234

3335
const minutes = Math.floor(secondsRemaining / 60);
3436
const seconds = secondsRemaining % 60;
35-
displayTime(minutes, seconds, clockDisplay);
37+
displayTime(secondsRemaining, clockDisplay);
3638
}, 1000);
3739
}
3840

3941
// formats and displays countdown time to a supplied element
40-
function displayTime(mins, secs, elem) {
42+
function displayTime(secondsRemaining, elem) {
43+
const mins = Math.floor(secondsRemaining / 60);
44+
const seconds = secondsRemaining % 60;
4145
const minsFormatted = String(mins).padStart(2, "0");
42-
const secsFormatted = String(secs).padStart(2, "0");
46+
const secsFormatted = String(seconds).padStart(2, "0");
4347
elem.textContent = `Time Remaining: ${minsFormatted}:${secsFormatted}`;
4448
}
4549

@@ -53,7 +57,7 @@ function isValidInput(input) {
5357
return false;
5458
}
5559

56-
if (input < 0) {
60+
if (input <= 0) {
5761
return false;
5862
}
5963

0 commit comments

Comments
 (0)