-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
70 lines (54 loc) · 2.21 KB
/
script.js
File metadata and controls
70 lines (54 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
let todoTasks = [];
let doneTasks = [];
document.getElementById("addTaskBtn").addEventListener("click", addTask);
function addTask() {
let userInputElement = document.getElementById("userInput");
let userInput = userInputElement.value;
if (userInput === "") {
Swal.fire({
icon: "warning",
title: "Empty Input",
text: "Please enter Your Task.",
});
return;
}
let taskId = todoTasks.length + 1;
todoTasks.push({ id: taskId, text: userInput, isChecked: false });
let taskItemHTML = `
<li class="list-group-item mt-3" id="todoTask-${taskId}">
<input class="form-check-input me-1" type="checkbox" id="checkbox-${taskId}" ${false ? 'checked' : ''}>
<label class="form-check-label" for="checkbox-${taskId}">${userInput}</label>
</li>`;
document.getElementById("addTask").insertAdjacentHTML("beforeend", taskItemHTML);
userInputElement.value = "";
if (doneTasks.find(task => task.id === taskId && task.isChecked)) {
document.getElementById("task").insertAdjacentHTML("beforeend", `
<li class="list-group-item mt-3" id="doneTask-${taskId}">${userInput}</li>
`);
}
}
document.getElementById("addTask").addEventListener("change", function (event) {
if (event.target && event.target.type === "checkbox") {
let taskId = parseInt(event.target.id.replace('checkbox-', ''));
let isChecked = event.target.checked;
handleTaskCheckboxChange(taskId, isChecked);
}
});
function handleTaskCheckboxChange(taskId, isChecked) {
let task = todoTasks.find((task) => task.id === taskId);
task.isChecked = isChecked;
let taskText = task.text;
let taskLabel = document.querySelector(`#todoTask-${taskId} .form-check-label`);
if (isChecked) {
taskLabel.classList.add("strikethrough");
document.getElementById("task").insertAdjacentHTML("beforeend", `
<li class="list-group-item mt-3" id="doneTask-${taskId}">${taskText}</li>
`);
} else {
taskLabel.classList.remove("strikethrough");
let doneTaskElement = document.getElementById(`doneTask-${taskId}`);
if (doneTaskElement) {
doneTaskElement.remove();
}
}
}