diff --git a/index.html b/index.html index 7c33e3c..47901a4 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ - Zenith - sval.tech + NEET APEX @@ -1368,36 +1368,47 @@

Edit Score Bre // --- TIMER LOGIC --- - window.toggleTimer = function() { - if(isTimerRunning) { - // Pause - clearInterval(timerInterval); - isTimerRunning = false; - document.getElementById('btn-timer-toggle').innerHTML = ``; - document.getElementById('btn-timer-stop').disabled = false; - document.getElementById('timer-active-ring').classList.remove('opacity-100', 'animate-spin-slow'); - document.getElementById('timer-active-ring').classList.add('opacity-0'); - } else { - // Start - isTimerRunning = true; - timerInterval = setInterval(() => { - timerSeconds++; - updateTimerDisplay(); - }, 1000); - document.getElementById('btn-timer-toggle').innerHTML = ``; - document.getElementById('btn-timer-stop').disabled = false; - document.getElementById('timer-active-ring').classList.remove('opacity-0'); - document.getElementById('timer-active-ring').classList.add('opacity-100', 'animate-spin-slow'); - } - lucide.createIcons(); - } - - window.stopTimer = async function() { - if(timerSeconds < 60) { - if(!confirm("Less than 1 minute logged. Discard session?")) return; - resetTimer(); - return; - } + let timerStartTime = null; // Add this +let timerElapsedBeforePause = 0; + +window.toggleTimer = function() { + const now = Date.now(); + if(isTimerRunning) { + // Pause + clearInterval(timerInterval); + isTimerRunning = false; + timerElapsedBeforePause += (now - timerStartTime); // store elapsed + document.getElementById('btn-timer-toggle').innerHTML = ``; + document.getElementById('btn-timer-stop').disabled = false; + document.getElementById('timer-active-ring').classList.remove('opacity-100', 'animate-spin-slow'); + document.getElementById('timer-active-ring').classList.add('opacity-0'); + } else { + // Start + isTimerRunning = true; + timerStartTime = now; // store start timestamp + timerInterval = setInterval(() => { + const elapsed = Date.now() - timerStartTime + timerElapsedBeforePause; + timerSeconds = Math.floor(elapsed / 1000); // calculate seconds reliably + updateTimerDisplay(); + }, 1000); + document.getElementById('btn-timer-toggle').innerHTML = ``; + document.getElementById('btn-timer-stop').disabled = false; + document.getElementById('timer-active-ring').classList.remove('opacity-0'); + document.getElementById('timer-active-ring').classList.add('opacity-100', 'animate-spin-slow'); + } + lucide.createIcons(); +} + +window.stopTimer = async function() { + if(timerSeconds < 60) { + if(!confirm("Less than 1 minute logged. Discard session?")) return; + resetTimer(); + timerElapsedBeforePause = 0; // reset stored time + return; + } + timerElapsedBeforePause = 0; // reset after stop + resetTimer(); +} // Save log const duration = Math.round(timerSeconds / 60);