document.addEventListener('DOMContentLoaded', () => { const taskForm = document.getElementById('task-form'); const newTaskInput = document.getElementById('new-task'); const taskList = document.getElementById('task-list'); const emptyState = document.getElementById('empty-state'); let tasks = JSON.parse(localStorage.getItem('tasks')) || []; // Render tasks on page load renderTasks(); // Add new task taskForm.addEventListener('submit', (e) => { e.preventDefault(); const taskText = newTaskInput.value.trim(); if (taskText) { addTask(taskText); newTaskInput.value = ''; newTaskInput.focus(); } }); // Add task function function addTask(text) { const newTask = { id: Date.now(), text: text, completed: false }; tasks.unshift(newTask); // Add to beginning of array saveTasks(); renderTasks(); } // Delete task function deleteTask(id) { tasks = tasks.filter(task => task.id !== id); saveTasks(); renderTasks(); } // Toggle task completion function toggleTask(id) { tasks = tasks.map(task => { if (task.id === id) { return {...task, completed: !task.completed}; } return task; }); // Sort tasks: incomplete first tasks.sort((a, b) => { if (a.completed && !b.completed) return 1; if (!a.completed && b.completed) return -1; return 0; }); saveTasks(); renderTasks(); } // Save tasks to localStorage function saveTasks() { localStorage.setItem('tasks', JSON.stringify(tasks)); } // Render tasks to the DOM function renderTasks() { if (tasks.length === 0) { taskList.innerHTML = ''; emptyState.classList.remove('hidden'); return; } emptyState.classList.add('hidden'); // Sort tasks: incomplete first const sortedTasks = [...tasks].sort((a, b) => { if (a.completed && !b.completed) return 1; if (!a.completed && b.completed) return -1; return 0; }); taskList.innerHTML = sortedTasks.map(task => `