Productivity Timer
Time to focus!
25:00
Session Tasks
No tasks added for this session.
'; return; } tasks.forEach(task => { const taskItem = document.createElement('div'); taskItem.className = `task-item ${task.completed ? 'completed' : ''}`; taskItem.innerHTML = ` ${task.text} `; taskList.appendChild(taskItem); }); }; const addTask = () => { const text = taskInput.value.trim(); if (text) { tasks.push({ id: Date.now(), text, completed: false }); taskInput.value = ''; renderTasks(); } }; const handleTaskListClick = (e) => { const target = e.target; const id = parseInt(target.dataset.id, 10); if (target.type === 'checkbox') { const task = tasks.find(t => t.id === id); if (task) { task.completed = target.checked; renderTasks(); } } else if (target.tagName === 'BUTTON') { tasks = tasks.filter(t => t.id !== id); renderTasks(); } }; // --- Event Listeners --- startBtn.addEventListener('click', startTimer); pauseBtn.addEventListener('click', pauseTimer); resetBtn.addEventListener('click', () => { isWorkSession = true; // Always reset to a work session resetTimer(); }); addTaskBtn.addEventListener('click', addTask); taskInput.addEventListener('keyup', (e) => { if (e.key === 'Enter') addTask(); }); taskList.addEventListener('click', handleTaskListClick); // --- Initial Load --- resetTimer(); // Initialize display renderTasks(); // Initialize task list });