Pular para o conteúdo principal

Gestão de Aprovações

Última atualização: 16 de julho de 2026

Visão Geral

A tela sugere um fluxo de aprovação de vendas: uma listagem com filtros por status (todas, pendentes, aprovadas, reprovadas, parciais) e um card por venda mostrando cliente, vendedor, data, valor e o motivo que gerou a necessidade de aprovação. Na prática, é só a listagem. Não existe nenhuma ação de aprovar ou rejeitar implementada, e todos os dados são mockados.

Arquivos-chave

ArquivoResponsabilidade
features/store/subscreens/approval-management/store-approval-management.controller.tsEstado, filtros e dados
features/store/subscreens/approval-management/store-approval-management.mock.tsFonte de todos os registros exibidos
features/store/subscreens/approval-management/store-approval-management.tsxView

O que está sendo aprovado

Cada item da lista representa uma venda vinculada a um registro de salesMock (__mocks__/sales.mock.ts), com um eventLabel descrevendo o motivo da necessidade de aprovação, como "Desconto No Item", "Score" ou "Saldo Flex". Isso indica que a intenção é aprovar vendas com algum tipo de exceção comercial, não um fluxo genérico de aprovação de qualquer natureza.

APPROVAL_MANAGEMENT_MOCK é um array fixo com apenas 5 registros, todos reutilizando os mesmos textos genéricos: mesmo cliente ("25 - Loja das Ferramentas Moura Brasil"), mesmo vendedor ("José Augusto"), mesma data ("29/01/2023") e o mesmo valor fixo (amountLabel: "R$0,00") em todos os itens, variando só o status e o motivo.

Não existe ação de aprovar ou rejeitar

O único botão de ação em cada card é um ícone de "olho", e ele não tem nenhum manipulador de toque:

// store-approval-management.tsx
<Button testID="features-store-approval-management-screen-button-1" variant="ghost" style={styles.eyeButton}>
<IconSymbol lib="Feather" name="eye" size={18} color="#171717" />
</Button>

Não há onPress, não há navegação para uma tela de detalhe, não há chamada de serviço para aprovar ou reprovar a venda. A tela só permite buscar e filtrar os registros mockados por status:

type ApprovalStatusFilter = "all" | "pending" | "approved" | "reproved" | "partial";

O próprio texto de estado vazio confirma a natureza mockada: "Ajuste a busca ou troque o status para visualizar as demais aprovações mockadas."

Armadilhas conhecidas

Diferente de outras telas mock do app que ao menos simulam uma ação completa com toast de sucesso, aqui nem a simulação de aprovar/reprovar foi implementada, é puramente uma listagem estática de exemplo. Qualquer trabalho futuro nesta tela precisa: decidir de onde essas vendas pendentes de aprovação viriam de fato (provavelmente uma API do backend/ERP), implementar a tela de detalhe atrás do botão de olho, e implementar as ações de aprovar/rejeitar com sua respectiva chamada de serviço.