Já revisei todo o código para ter certeza que não tem nenhum erro e aparentemente está tudo certo de acordo com o que foi passado na aula, o problema é que a função atualizaElemento ao invés de somar o item que já existe ela está atualizando e substituindo a quantidade do item.
Alguém sabe me dizer o que está errado?
o código até o momento.
const form = document.querySelector('#novoItem');
const lista = document.querySelector('#lista')
const itens = JSON.parse(localStorage.getItem('itens')) || []
itens.forEach((elemento) => {
criaElemento(elemento)
})
form.addEventListener('submit', (event) => {
const nomeItem = event.target.elements['nome']
const quantidadeItem = event.target.elements['quantidade']
const existe = itens.find( elemento => elemento.nome === nomeItem.value )
const itemAtual = {
"nome": nomeItem.value,
"quantidade": quantidadeItem.value
}
if (existe) {
itemAtual.id = existe.id
atualizaElemento(itemAtual)
} else {
itemAtual.id = itens.length
criaElemento(itemAtual)
itens.push(itemAtual)
}
localStorage.setItem("itens", JSON.stringify(itens))
nomeItem.value = ""
quantidadeItem.value = ""
event.preventDefault()
})
function criaElemento(item) {
const novoItem = document.createElement('li');
novoItem.classList.add('item')
const numeroItem = document.createElement('strong')
numeroItem.innerHTML = item.quantidade
numeroItem.dataset.id = item.id
novoItem.appendChild(numeroItem)
novoItem.innerHTML += item.nome
lista.appendChild(novoItem)
}
function atualizaElemento(item) {
document.querySelector(`[data-id="${item.id}"]`).innerHTML = item.quantidade
}