File tree Expand file tree Collapse file tree 1 file changed +42
-1
lines changed Expand file tree Collapse file tree 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
+ 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 ; //skip this unless it's an input
60
+ const el = e . target ;
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
+
68
+ addItems . addEventListener ( 'submit' , addItem ) ;
69
+ itemsList . addEventListener ( 'click' , toggleDone ) ;
70
+
71
+ populateList ( items , itemsList )
72
+
32
73
33
74
</ script >
34
75
You can’t perform that action at this time.
0 commit comments