Skip to content

Commit ec38a93

Browse files
committed
Maintain state when completed all button pressed
1 parent ae52445 commit ec38a93

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

main.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ function setUpPage() {
1919

2020
completeAllBtn.addEventListener('click', () => {
2121
let savedTasks = JSON.parse(localStorage.getItem('tasks'));
22+
let taskTitles = document.querySelectorAll('.todo');
2223

2324
for (let i = 0, len = savedTasks.length; i < len; i++) {
2425
var check = document.getElementsByName("completed")[i];
2526
check.checked = "checked";
27+
updateTaskInStorage(taskTitles[i].innerHTML, true);
2628
}
2729
});
2830

@@ -68,14 +70,15 @@ function createTodo(newTodo) {
6870
const isChecked = newTodo.isChecked ? 'checked' : '';
6971
const taskTitle = newTodo.title || newTodo;
7072
const demoTodo = document.createElement('LI');
71-
const createdElement = `<input type='checkbox' ${isChecked} onchange='updateTaskInStorage("${taskTitle}")'> <p class='todo'>${taskTitle}</p><i class='far fa-trash-alt delete'></i>`;
73+
const createdElement = `<input type='checkbox' ${isChecked} name='completed' onchange='updateTaskInStorage("${taskTitle}")'> <p class='todo'>${taskTitle}</p><i class='far fa-trash-alt delete'></i>`;
7274
demoTodo.innerHTML = createdElement;
7375
todoContainer.appendChild(demoTodo);
7476
};
7577

7678
function saveTaskToStorage(addedTask) {
7779
let savedTasks = JSON.parse(localStorage.getItem('tasks')) || [];
7880
const newTask = {
81+
id: Date.now(),
7982
title: addedTask,
8083
isChecked: false
8184
};
@@ -84,18 +87,19 @@ function saveTaskToStorage(addedTask) {
8487
}
8588

8689
function deleteTaskFromStorage(removedTask) {
90+
console.log(removedTask);
8791
let savedTasks = JSON.parse(localStorage.getItem('tasks'));
8892
const newTaskList = savedTasks.filter(taskItem => {
8993
return taskItem.title !== removedTask;
9094
});
9195
localStorage.setItem('tasks', JSON.stringify(newTaskList));
9296
}
9397

94-
function updateTaskInStorage(completedTask) {
98+
function updateTaskInStorage(completedTask, isCompleted) {
9599
let savedTasks = JSON.parse(localStorage.getItem('tasks'));
96100
const taskIndex = savedTasks.findIndex(taskItem => {
97101
return taskItem.title === completedTask;
98102
});
99-
savedTasks[taskIndex].isChecked = !savedTasks[taskIndex].isChecked;
103+
savedTasks[taskIndex].isChecked = isCompleted || !savedTasks[taskIndex].isChecked;
100104
localStorage.setItem('tasks', JSON.stringify(savedTasks));
101105
}

0 commit comments

Comments
 (0)