File tree Expand file tree Collapse file tree
09 - Dev Tools Domination Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1818 }
1919
2020 // Regular
21+
2122
2223 // Interpolated
2324
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -28,7 +28,46 @@ <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' ) ) || [ ] ;
32+
33+
34+ function addItem ( e ) {
35+ e . preventDefault ( )
36+ const text = this . querySelector ( '[name=item]' ) . value
37+ const item = {
38+ text,
39+ done : false
40+ }
41+ items . push ( item )
42+ populateList ( items , itemsList )
43+ localStorage . setItem ( 'items' , JSON . stringify ( items ) )
44+ this . reset ( )
45+ }
46+
47+ function populateList ( plates = [ ] , platesList ) {
48+ platesList . innerHTML = plates . map ( ( plate , i ) => {
49+ return `
50+ <li>
51+ <input type="checkbox" data-index=${ i } id="item${ i } " ${ plate . done ? 'checked' : '' } />
52+ <label for="item${ i } ">${ plate . text } </label>
53+ </li>
54+ `
55+ } ) . join ( '' )
56+ }
57+
58+ function toggleDone ( e ) {
59+ const el = e . target
60+ if ( ! el . matches ( 'input' ) ) return
61+ const index = el . dataset . index
62+ items [ index ] . done = ! items [ index ] . done
63+ localStorage . setItem ( 'items' , JSON . stringify ( items ) )
64+ populateList ( items , itemsList )
65+ }
66+
67+ addItems . addEventListener ( 'submit' , addItem )
68+ itemsList . addEventListener ( 'click' , toggleDone )
69+
70+ populateList ( items , itemsList )
3271
3372</ script >
3473
You can’t perform that action at this time.
0 commit comments