Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha solução para esta aula

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));
  }
}
1 resposta
solução!

Oi João, tudo bem?

Que legal que você conseguiu absorver bem o conteúdo e ainda fez algumas coisas diferentes do professor! Isso é ótimo para aprender ainda mais.

Pelo código que você postou, parece que você está armazenando os itens em um array no localStorage e depois criando elementos na lista com base nesse array. Além disso, você está verificando se o item já existe na lista antes de adicioná-lo novamente.

Muito obrigada por compartilhar com a gente :)

Um abraço e bons estudos.