const adicionarProduto = (novoProduto) => {
const temOProduto = carrinho.some(itemDoCarrinho => itemDoCarrinho.id === novoProduto.id)
if(!temOProduto) {
novoProduto.quantidade = 1;
return setCarrinho(carrinhoAnterior =>
[...carrinhoAnterior, novoProduto])
}
setCarrinho(carrinhoAnterior => carrinhoAnterior.map(itemDoCarrinho => {
if(itemDoCarrinho.id === novoProduto.id) itemDoCarrinho.quantidade += 1;
return itemDoCarrinho
}))
}
Se já temos a validação na variável temOProduto, porque fazemos novamente a validação if(itemDoCarrinho.id === novoProduto.id) itemDoCarrinho.quantidade += 1; ao final? Não é uma repetição desnecessária de código?