Fiz algumas coisas diferente do professor, me rendeu uns bons dias de estudo para entender direitinho o que estava dando bug, mas no final consegui absorver bem o conteúdo.
const form = document.getElementById("novoItem");
const lista = document.getElementById("lista");
const listaItens = JSON.parse(localStorage.getItem("itens")) || [];
// localStorage.clear();
listaItens.forEach((element) => {
criarElemento(element);
});
form.addEventListener("submit", (evento) => {
evento.preventDefault();
const nome = evento.target.elements["nome"];
const quantidade = evento.target.elements["quantidade"];
const item = {
nome: nome.value,
quantidade: quantidade.value,
};
verificaExistencia(item);
});
function criarElemento(item) {
const novoElemento = document.createElement("li");
const filhoNovoElemento = document.createElement("strong");
novoElemento.appendChild(filhoNovoElemento);
filhoNovoElemento.innerHTML = item.quantidade;
novoElemento.classList.add("item");
novoElemento.dataset.id = item.id;
novoElemento.innerHTML += item.nome;
lista.appendChild(novoElemento);
if (listaItens.find((element) => element.nome === item.nome)) {
} else {
listaItens.push(item);
}
nome = "";
quantidade = "";
}
function verificaExistencia(item) {
console.log(item);
const existe = listaItens.find((element) => item.nome === element.nome);
if (existe) {
item.id = existe.id;
const elemento = document.querySelector('[data-id="' + existe.id + '"]');
elemento.firstChild.innerHTML = item.quantidade;
listaItens[existe.id] = item;
localStorage.setItem("itens", JSON.stringify(listaItens));
} else {
item.id = listaItens.length;
criarElemento(item);
localStorage.setItem("itens", JSON.stringify(listaItens));
}
}