refactor(inbox): remove process dialog e integra fluxo ao lancamento-dialog

- Remove process-dialog.tsx (componente não mais utilizado)
- Simplifica inbox-page.tsx removendo estados e lógica do process dialog
- Atualiza inbox-details-dialog para usar lancamento-dialog diretamente
- Adiciona suporte a dados iniciais do inbox no lancamento-dialog
- Move campos de metadata da inbox para o form de lançamento
- Remove campo currency não utilizado do schema
- Atualiza actions e data com melhor tratamento de erros
This commit is contained in:
Felipe Coutinho
2026-01-26 13:31:37 +00:00
parent 18471f2225
commit c0fb11f89c
16 changed files with 203 additions and 421 deletions

View File

@@ -43,6 +43,8 @@ export type LancamentoFormOverrides = {
defaultCartaoId?: string | null;
defaultPaymentMethod?: string | null;
defaultPurchaseDate?: string | null;
defaultName?: string | null;
defaultAmount?: string | null;
defaultTransactionType?: "Despesa" | "Receita";
isImporting?: boolean;
};
@@ -84,8 +86,8 @@ export function buildLancamentoInitialState(
: "");
// Calcular o valor correto para importação de parcelados
let amountValue = "";
if (typeof lancamento?.amount === "number") {
let amountValue = overrides?.defaultAmount ?? "";
if (!amountValue && typeof lancamento?.amount === "number") {
let baseAmount = Math.abs(lancamento.amount);
// Se está importando e é parcelado, usar o valor total (parcela * quantidade)
@@ -106,7 +108,7 @@ export function buildLancamentoInitialState(
lancamento?.period && /^\d{4}-\d{2}$/.test(lancamento.period)
? lancamento.period
: fallbackPeriod,
name: lancamento?.name ?? "",
name: lancamento?.name ?? overrides?.defaultName ?? "",
transactionType:
lancamento?.transactionType ??
overrides?.defaultTransactionType ??

View File

@@ -14,7 +14,6 @@ export const inboxItemSchema = z.object({
parsedName: z.string().optional(),
parsedAmount: z.coerce.number().optional(),
parsedDate: z.string().optional().transform((val) => (val ? new Date(val) : undefined)),
parsedCardLastDigits: z.string().length(4).optional(),
parsedTransactionType: z.enum(["Despesa", "Receita"]).optional(),
clientId: z.string().optional(), // ID local do app para rastreamento
});