File tree 1 file changed +42
-1
lines changed
1 file changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -28,7 +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
+ localStorage . setItem ( 'items' , JSON . stringify ( items ) )
43
+ populateList ( items , itemsList ) ;
44
+ this . reset ( ) ;
45
+ }
46
+
47
+ function toggleDone ( e ) {
48
+ const { target } = e ;
49
+ if ( ! target . matches ( 'input' ) ) return ;
50
+ const el = target ;
51
+ const { index } = el . dataset ;
52
+ items [ index ] . done = ! items [ index ] . done ;
53
+ localStorage . setItem ( 'items' , JSON . stringify ( items ) )
54
+ populateList ( items , itemsList ) ;
55
+ }
56
+
57
+ function populateList ( plates = [ ] , platesList ) {
58
+ platesList . innerHTML = plates . map ( ( plate , i ) => {
59
+ return `
60
+ <li>
61
+ <input type='checkbox' data-index='${ i } ' id="item${ i } " ${ plate . done ? 'checked' : '' } />
62
+ <label for="item${ i } ">${ plate . text } </label>
63
+ </li>
64
+ ` ;
65
+ } ) . join ( "" ) ;
66
+ }
67
+
68
+ addItems . addEventListener ( 'submit' , addItem ) ;
69
+
70
+ populateList ( items , itemsList ) ;
71
+
72
+ itemsList . addEventListener ( 'click' , toggleDone ) ;
32
73
33
74
</ script >
34
75
You can’t perform that action at this time.
0 commit comments