Eu vi que ao tentar editar um item, é possivel editar esse item para um igual a outro da lista. Pensando nisso tentei arrumar esse problema:
function salvarEdicao() {
const itemEditado = document.querySelector(`[data-value="${itemAEditar}"] input[type="text"]`);
const checarDuplicado = listaDeItens.some(elemento => elemento.valor.toUpperCase() === itemEditado.value.toUpperCase())
if (checarDuplicado) {
alert("Item já existe");
} else {
listaDeItens[itemAEditar].valor = itemEditado.value;
itemAEditar = -1;
itemEditado.setAttribute('disabled', true);
mostrarItem();
}
}
Dessa forma, consegui corrigir esse problema mas outro apareceu: Se eu tento apenas sair da edição sem modificar nada, como a checagem é feita antes de tentar salvar o item, ele acusa q o item já existe. Como posso fazer com q a função reconheça q o item n foi modificado e assim me deixar sair/salvar o item n editado?
Eu pensei em criar um botão para sair da edição mas queria ver se existe uma possibilidade mais direta e "esperta".