O dt money é uma aplicação de controle financeiro que permite cadastrar transações e exibir um resumo das entradas, saídas e total disponível.
Projeto responsivo
Funcionalidade de editar/deletar uma transação
Criando essa funcionalidade, pude praticar mais o uso de contextos no React, criando um contexto e um hook para gerenciar os modais. Além de precisar consultar a documentação do MirageJS ao precisar criar rotas para os métodos PUT e DELETE para poder editar e excluir uma transação.
O MirageJS é uma ferramenta que permite criar uma fake API mas também conta com várias outras funcionalidades como um database que permite várias operações. Foi algo novo e muito bacana de se ver!
Uma fake API agiliza o desenvolvimento, possibilitando criar grande parte do Front end (se não toda) sem o Back end estar pronto
Código de exemplo
Uma nova perspectiva sobre o método foi me dada, deixando de lado a ideia de que o reduce só serve para somar valores de um array numérico.
const summary = transactions.reduce((accumulator, transaction) => {
type SummaryReduceOperations = {
[operationName: string]: () => void
}
const { type, amount } = transaction
const operation: SummaryReduceOperations = {
deposit: () => {
accumulator.deposits += amount
accumulator.total += amount
},
withdraw: () => {
accumulator.withdraws -= amount
accumulator.total -= amount
}
}
operation[type]()
return accumulator
},
{ deposits: 0, withdraws: 0, total: 0 }
)