1+ // prendre tout les elements necessaires
2+ const inputBox = document . querySelector ( '.inputField input' ) ;
3+ const addBtn = document . querySelector ( '.inputField button' ) ;
4+ const deleteAll = document . querySelector ( '.footer button' ) ;
5+ const todoList = document . querySelector ( '.todoList' ) ;
6+
7+ inputBox . onkeyup = ( ) => {
8+ let userData = inputBox . value ; //getting user value
9+ if ( userData . trim ( ) != 0 ) { //if user values aren't only spaces
10+ addBtn . classList . add ( 'active' ) ;
11+ } else {
12+ addBtn . classList . remove ( 'active' ) ;
13+ }
14+ }
15+ showTasks ( ) ;
16+ // if user click on the add btn
17+ addBtn . onclick = ( ) => {
18+ let userData = inputBox . value ; //getting user value
19+ let getLocalStorage = localStorage . getItem ( 'New todo' ) ; //get the local storage
20+ if ( getLocalStorage == null ) {
21+ listArr = [ ] ; //creating blanck array
22+ } else {
23+ listArr = JSON . parse ( getLocalStorage ) ; //transform json string into js object
24+ }
25+ listArr . push ( userData ) ; // push or add user data
26+ localStorage . setItem ( "New todo" , JSON . stringify ( listArr ) ) //transform js object into a json string
27+ showTasks ( ) ;
28+ }
29+ // this function add list inside ul
30+ function showTasks ( ) {
31+ let getLocalStorage = localStorage . getItem ( 'New todo' ) ;
32+ if ( getLocalStorage == null ) {
33+ listArr = [ ] ; //creating blanck array
34+ } else {
35+ listArr = JSON . parse ( getLocalStorage ) ; //transform json string into js object
36+ }
37+ const pendingNumb = document . querySelector ( '.pendingNumber' ) ;
38+ pendingNumb . textContent = listArr . length ;
39+ let newLiTag = '' ;
40+ listArr . forEach ( ( element , index ) => {
41+ newLiTag += `<li>${ element } <button onclick="deleteTask(${ index } )";>Delete</button></li>` ;
42+ } ) ;
43+ todoList . innerHTML = newLiTag ; //adding new element li
44+ inputBox . value = "" ;
45+ }
46+ // delete task
47+ function deleteTask ( index ) {
48+ let getLocalStorage = localStorage . getItem ( 'New todo' ) ;
49+ listArr = JSON . parse ( getLocalStorage ) ;
50+ listArr . splice ( index , 1 ) // remove de partiicular index
51+ localStorage . setItem ( "New todo" , JSON . stringify ( listArr ) ) //transform js object into a json string
52+ showTasks ( ) ;
53+ }
54+
55+ deleteAll . onclick = ( ) => {
56+ listArr = [ ] ; //empty list array
57+ //update the local storage
58+ localStorage . setItem ( "New todo" , JSON . stringify ( listArr ) ) //transform js object into a json string
59+ showTasks ( ) ;
60+ }
0 commit comments