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

[Dúvida] Não estou entendo a verificação na edição do item.

Depois que eu implemento o seguinte código, eu consigo editar os itens da minha lista de compras normalmente assim como os itens da lista de itens já comprados.

const editarItem = (elemento) => {
    let novoItem = prompt("Novo item");
    if (novoItem.trim()) {
        const itemTextoAtualizado = elemento.querySelector("#item-titulo");
        itemTextoAtualizado.textContent = novoItem;
    }
}

export { editarItem };

Com a verificação que é feita a seguir eu realmente não notei diferença porque, eu já conseguia editar os itens comprados sem eles perderem a estilização, com essa segunda verificação, caso edite um item da lista de compras para o mesmo nome de um item da lista de itens já comprados, não faz diferença aparente, o item continua duplicado, então eu realmente não estou entendendo para que essa verificação serve.

const editarItem = (elemento) => {
    let novoItem = prompt("Novo item");
    if (novoItem.trim()) {
        const itemTextoAtualizado = elemento.querySelector("#item-titulo");
        itemTextoAtualizado.textContent = novoItem;

        const estavaComprado = elemento.querySelector(".checkbox-input").checked;

        if (estavaComprado) {
            elemento.querySelector(".checkbox-input").checked = true;
            elemento.querySelector(".checkbox-customizado").classList.add("checked");
            itemTextoAtualizado.styel.textDecoration = "line-through";
        }
    }
}

export { editarItem };
1 resposta
solução!

Oi Mateus! Tudo bem?

No seu código original, a edição de um item simplesmente atualiza o texto do item. No entanto, a segunda versão do código introduz uma verificação para ver se o item estava marcado como "comprado" (estavaComprado). Essa verificação serve para garantir que, ao editar um item que já estava marcado como comprado, ele mantenha essa marcação após a edição.

Vamos ver isso em detalhes:

  1. Verificação do estado "comprado": A linha const estavaComprado = elemento.querySelector(".checkbox-input").checked; verifica se o item estava marcado como comprado antes da edição.

  2. Manutenção do estado "comprado": Se estavaComprado for true, o código dentro do if garante que o item ainda seja mostrado como comprado após a edição. Isso inclui manter o checkbox marcado e aplicar o estilo de texto riscado (line-through).

A diferença pode não ser visível se você não estiver testando com itens que já estão marcados como comprados. A verificação é útil para garantir que a edição de um item não remova acidentalmente a indicação de que ele já foi comprado.

Se você editar um item que estava marcado como comprado, verá que ele mantém a estilização de riscado, o que não aconteceria sem essa verificação.

Espero ter ajudado. Em caso de dúvidas, conte sempre com o apoio do fórum :)

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!