File tree Expand file tree Collapse file tree 1 file changed +39
-2
lines changed Expand file tree Collapse file tree 1 file changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -28,11 +28,48 @@ <h2>LOCAL TAPAS</h2>
28
28
< script >
29
29
const addItems = document . querySelector ( '.add-items' ) ;
30
30
const itemsList = document . querySelector ( '.plates' ) ;
31
- const items = [ ] ;
31
+ const items = JSON . parse ( localStorage . getItem ( 'items' ) ) || [ ] ;
32
+
33
+ function addItem ( e ) {
34
+ e . preventDefault ( ) ;
35
+ const text = ( this . querySelector ( '[name=item]' ) ) . value ;
36
+ const item = {
37
+ text,
38
+ done : false
39
+ } ;
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
+ if ( ! e . target . matches ( 'input' ) ) return ;
60
+ const el = e . target ;
61
+ const index = el . dataset . index ;
62
+ items [ index ] . done = ! items [ index ] . done ; // flip flop true/false
63
+ localStorage . setItem ( 'items' , JSON . stringify ( items ) ) ;
64
+ populateList ( items , itemsList ) ;
65
+ }
66
+
67
+ addItems . addEventListener ( 'submit' , addItem ) ;
68
+ itemsList . addEventListener ( 'click' , toggleDone ) ;
69
+ populateList ( items , itemsList ) ;
32
70
33
71
</ script >
34
72
35
73
36
74
</ body >
37
75
</ html >
38
-
You can’t perform that action at this time.
0 commit comments