@@ -28,7 +28,43 @@ <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+ function addToList ( e ) {
34+ e . preventDefault ( ) ;
35+ const text = ( this . querySelector ( '[name=item]' ) ) . value ;
36+ const item = { text, chosen : false } ;
37+ items . push ( item ) ;
38+ // console.log(items);
39+ reRenderList ( items , itemsList ) ;
40+ localStorage . setItem ( 'items' , JSON . stringify ( items ) ) ;
41+ this . reset ( ) ;
42+ }
43+
44+ function reRenderList ( itemList = [ ] , listOfItems ) {
45+ listOfItems . innerHTML = itemList . map ( ( item , i ) => {
46+ return `
47+ <li>
48+ <input type="checkbox" data-index=${ i } id="item${ i } " ${ item . chosen ? 'checked' : '' } />
49+ <label for="item${ i } ">${ item . text } </label>
50+ </li>
51+ ` ;
52+ } ) . join ( '' ) ;
53+ }
54+
55+ function doCheck ( e ) {
56+ if ( ! e . target . matches ( 'input' ) ) return ;
57+ const index = e . target . dataset . index ;
58+ items [ index ] . chosen = ! items [ index ] . chosen ;
59+ localStorage . setItem ( 'items' , JSON . stringify ( items ) ) ;
60+ reRenderList ( items , itemsList ) ;
61+ console . log ( index ) ;
62+
63+ }
64+
65+ addItems . addEventListener ( 'submit' , addToList ) ;
66+ itemsList . addEventListener ( 'click' , doCheck ) ;
67+ reRenderList ( items , itemsList ) ;
3268
3369</ script >
3470
0 commit comments