@@ -5,7 +5,7 @@ const todoList = document.querySelector(".todo-list");
5
5
const filterOption = document . querySelector ( ".filter-todo" ) ;
6
6
7
7
//Event Listeners
8
- // document.addEventListener("DOMContentLoaded", getTodos);
8
+ document . addEventListener ( "DOMContentLoaded" , getTodos ) ;
9
9
todoButton . addEventListener ( "click" , addTodo ) ;
10
10
todoList . addEventListener ( "click" , deleteTodo ) ;
11
11
filterOption . addEventListener ( "click" , filterTodo ) ;
@@ -23,8 +23,8 @@ function addTodo(e) {
23
23
newTodo . innerText = todoInput . value ;
24
24
//Save to local - do this last
25
25
//Save to local
26
- // saveLocalTodos(todoInput.value);
27
- //
26
+ saveLocalTodos ( todoInput . value ) ;
27
+
28
28
newTodo . classList . add ( "todo-item" ) ;
29
29
todoDiv . appendChild ( newTodo ) ;
30
30
todoInput . value = "" ;
@@ -49,6 +49,7 @@ function deleteTodo(e) {
49
49
const todo = item . parentElement ;
50
50
//Animation
51
51
todo . classList . add ( "fall" ) ;
52
+ removeLocalTodos ( todo ) ;
52
53
todo . addEventListener ( "transitionend" , function ( ) {
53
54
todo . remove ( ) ;
54
55
} ) ;
@@ -84,3 +85,57 @@ function filterTodo(e) {
84
85
}
85
86
} ) ;
86
87
}
88
+
89
+ function saveLocalTodos ( todo ) {
90
+ //Check---Hye do i already have thing in there?
91
+ let todos ;
92
+ if ( localStorage . getItem ( "todos" ) === null ) {
93
+ todos = [ ] ;
94
+ } else {
95
+ todos = JSON . parse ( localStorage . getItem ( "todos" ) ) ;
96
+ }
97
+ todos . push ( todo ) ;
98
+ localStorage . setItem ( "todos" , JSON . stringify ( todos ) ) ;
99
+ }
100
+
101
+ function getTodos ( ) {
102
+ let todos ;
103
+ if ( localStorage . getItem ( "todos" ) === null ) {
104
+ todos = [ ] ;
105
+ } else {
106
+ todos = JSON . parse ( localStorage . getItem ( "todos" ) ) ;
107
+ }
108
+ todos . forEach ( function ( todo ) {
109
+ const todoDiv = document . createElement ( "div" ) ;
110
+ todoDiv . classList . add ( "todo" ) ;
111
+ //Create list
112
+ const newTodo = document . createElement ( "li" ) ;
113
+ newTodo . innerText = todo ;
114
+ newTodo . classList . add ( "todo-item" ) ;
115
+ todoDiv . appendChild ( newTodo ) ;
116
+ //Create Completed Button
117
+ const completedButton = document . createElement ( "button" ) ;
118
+ completedButton . innerHTML = `<i class="fas fa-check"></i>` ;
119
+ completedButton . classList . add ( "complete-btn" ) ;
120
+ todoDiv . appendChild ( completedButton ) ;
121
+ //Create trash button
122
+ const trashButton = document . createElement ( "button" ) ;
123
+ trashButton . innerHTML = `<i class="fas fa-trash"></i>` ;
124
+ trashButton . classList . add ( "trash-btn" ) ;
125
+ todoDiv . appendChild ( trashButton ) ;
126
+ //attach final Todo
127
+ todoList . appendChild ( todoDiv ) ;
128
+ } ) ;
129
+ }
130
+
131
+ function removeLocalTodos ( todo ) {
132
+ let todos ;
133
+ if ( localStorage . getItem ( "todos" ) === null ) {
134
+ todos = [ ] ;
135
+ } else {
136
+ todos = JSON . parse ( localStorage . getItem ( "todos" ) ) ;
137
+ }
138
+ const todoIndex = todo . children [ 0 ] . innerText ;
139
+ todos . splice ( todos . indexOf ( todoIndex ) , 1 ) ;
140
+ localStorage . setItem ( "todos" , JSON . stringify ( todos ) ) ;
141
+ }
0 commit comments