-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
70 lines (69 loc) · 2.37 KB
/
Copy pathscript.js
File metadata and controls
70 lines (69 loc) · 2.37 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 form=document.querySelector("form");
let input=document.querySelector(".form__input");
let ToDoList=document.querySelector(".To-DoList");
let arr=getFromLocal();
form.addEventListener("submit",(e)=>{
e.preventDefault();
addToArr();
})
addItem();
function addToArr(){
let textdata=input.value.trim();
if(textdata.length>0){
let dataObj={
text:textdata,
flag:false
}
arr.push(dataObj);
addItem();
addToLocal();
input.value="";
console.log(arr);
}
}
function addItem(){
ToDoList.innerHTML='';
arr.forEach((ele,idx)=>{
let li=document.createElement("li");
li.className="To-DoList__li";
let todoText=ele.text;
li.innerHTML=
`
<input type="checkbox" id="input__checkbox-${idx}" >
<label for="input__checkbox-${idx}" class="custom-checkbox">
<svg fill="transparent" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed">
<path d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg>
</label>
<label for="input__checkbox-${idx}" class="todo-text">
${todoText}
</label>
<button class="del-btn">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed">
<path d="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z"/></svg>
</button>
`
let deletebtn=li.querySelector(".del-btn");
deletebtn.addEventListener("click",(e)=>{
deleteTodoItem(idx);
})
let check=li.querySelector("input");
check.addEventListener("change",()=>{
arr[idx].flag=check.checked;
addToLocal();
})
check.checked = ele.flag;
ToDoList.append(li);
})
}
function deleteTodoItem(idx){
arr=arr.filter((ele,i)=>i!=idx);
addToLocal();
addItem();
}
function addToLocal(){
localStorage.setItem("todos",JSON.stringify(arr));
}
function getFromLocal(){
let data=localStorage.getItem("todos")||"[]";
return JSON.parse(data) ;
}