-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
38 lines (38 loc) · 1.23 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"use strict";
const aggiungiPiatti = document.querySelector('.aggiungi-piatto');
const piatti = document.querySelector('.piatti');
const listaOrdini = JSON.parse(localStorage.getItem('ordini')) || [];
aggiungiPiatti.addEventListener('submit', aggiungiPiatto);
function aggiungiPiatto(event) {
event.preventDefault();
const nome = (this.querySelector('[name="piatto"]')).value;
const piatto = {
nome,
portato: false
};
listaOrdini.push(piatto);
popolaLista();
localStorage.setItem('ordini', JSON.stringify(listaOrdini));
this.reset();
}
function popolaLista() {
piatti.innerHTML = listaOrdini.map((ordine, index) => {
return `
<li>
<input type="checkbox" data-index="${index}" id="item${index}" ${ordine.portato ? 'checked' : ''} />
<label for="item${index}">${ordine.nome}</label>
</li>
`;
}).join('');
}
piatti.addEventListener('click', togglePortato);
function togglePortato(event) {
const el = event.target;
if (el.matches('input')) {
const index = Number(el.dataset.index);
listaOrdini[index].portato = !listaOrdini[index].portato;
localStorage.setItem('ordini', JSON.stringify(listaOrdini));
popolaLista();
}
}
popolaLista();