Faltou colocar o
cartoesLocal.forEach(cartao => {
preparaCartao(cartao)
})
dentro do pegaCartoesUsuario()
para preparar cada cartão e assim funcionar corretamente a edição e remoção deles.
Como o mapeamento da lista é retornado direto nesta função, serão necessárias algumas modificações pra que este forEach
acima seja executado e depois a lista seja retornada.
Minha função ficou um pouco diferente da original do curso, mas tem o mesmo resultado:
function pegaCartoesUsuario() {
let cartoes = []
let cartoesLocal = JSON.parse(localStorage.getItem(usuario))
if (cartoesLocal) {
cartoes = cartoesLocal.map(cartaoLocal => new Cartao(cartaoLocal.conteudo, cartaoLocal.tipo)) || []
cartoes.forEach(cartao => {
preparaCartao(cartao)
})
}
return cartoes
}