@@ -28,7 +28,7 @@ <h2>LOCAL TAPAS</h2>
2828< script >
2929 const addItems = document . querySelector ( '.add-items' ) ;
3030 const itemsList = document . querySelector ( '.plates' ) ;
31- const items = [ ] ;
31+ const items = JSON . parse ( localStorage . getItem ( "items" ) ) || [ ] ;
3232
3333 function addItem ( e ) {
3434 e . preventDefault ( ) ;
@@ -42,21 +42,36 @@ <h2>LOCAL TAPAS</h2>
4242
4343 items . push ( item ) ;
4444 populateList ( items , itemsList ) ;
45+ localStorage . setItem ( "items" , JSON . stringify ( items ) ) ;
4546 this . reset ( ) ;
4647 }
4748
4849 function populateList ( plates = [ ] , platesList ) {
4950 platesList . innerHTML = plates . map ( ( plate , i ) => {
5051 return `
5152 <li>
52- <label for="">${ plate . text } </label>
53+ <input type="checkbox" data-index=${ i } id="item${ i } " ${ plate . done ? "checked" : "" } />
54+ <label for="item${ i } ">${ plate . text } </label>
5355 </li>
5456 `
5557 } ) . join ( "" ) ;
5658 }
5759
58- addItems . addEventListener ( "submit" , addItem ) ;
60+ function toggleDone ( e ) {
61+ if ( ! e . target . matches ( "input" ) )
62+ return ;
5963
64+ const element = e . target ;
65+ const index = element . dataset . index ;
66+ items [ index ] . done = ! items [ index ] . done ;
67+ localStorage . setItem ( "items" , JSON . stringify ( items ) ) ;
68+ populateList ( items , itemsList ) ;
69+ }
70+
71+ addItems . addEventListener ( "submit" , addItem ) ;
72+ itemsList . addEventListener ( "click" , toggleDone ) ;
73+
74+ populateList ( items , itemsList ) ;
6075</ script >
6176
6277
0 commit comments