Cinnamon Honey Oatmeal Raisin Granola Bars with Toasted Walnuts
original: 2 },
{ element: document.querySelector('[data-quantity="1"]'), original: 1 },
{ element: document.querySelector('[data-quantity="0.75"]'), original: 0.75 },
{ element: document.querySelector('[data-quantity="0.5"]'), original: 0.5 },
];
document.getElementById("servings").addEventListener("input", (e) => {
const newServings = parseFloat(e.target.value);
const ratio = newServings / originalServings;
ingredients.forEach((ingredient) => {
const newQuantity = (ingredient.original * ratio).toFixed(2);
ingredient.element.textContent = parseFloat(newQuantity);
});
document.getElementById("serving-size").textContent = newServings;
});
// Timer Logic
const timerDisplay = document.getElementById("timer-display");
let timerInterval, remainingTime, isPaused = false;
document.getElementById("start-timer").addEventListener("click", () => {
const minutes = parseFloat(document.getElementById("step-timer").value);
if (!isPaused) {
if (isNaN(minutes) || minutes <= 0) return;
remainingTime = minutes * 60000;
}
clearInterval(timerInterval);
const endTime = Date.now() + remainingTime;
isPaused = false;
timerInterval = setInterval(() => {
const timeLeft = isPaused ? remainingTime : Math.max(0, endTime - Date.now());
const mins = Math.floor(timeLeft / 60000);
const secs = Math.floor((timeLeft % 60000) / 1000);
timerDisplay.textContent = `${mins}:${secs.toString().padStart(2, "0")}`;
remainingTime = timeLeft;
if (timeLeft <= 0) {
clearInterval(timerInterval);
timerDisplay.textContent = "Time's up!";
}
}, 1000);
});
document.getElementById("pause-timer").addEventListener("click", () => {
if (!timerInterval) return;
clearInterval(timerInterval);
isPaused = true;
});
document.getElementById("stop-timer").addEventListener("click", () => {
clearInterval(timerInterval);
isPaused = false;
remainingTime = 0;
timerDisplay.textContent = "Timer stopped.";
});