Home, Indicadores e Engajamento — Visão Geral
Última atualização: 15 de julho de 2026
O que é este fluxo
A home é a primeira tela depois do login, montada como uma lista de seções que o próprio usuário pode ligar ou desligar. Este é o fluxo com a maior proporção de conteúdo ainda mockado entre todos os já documentados. Isso não é necessariamente um problema, dá para ler como um retrato de um produto em construção, com a estrutura visual e de navegação já pronta enquanto as fontes de dados reais ainda estão sendo conectadas uma a uma. O objetivo desta seção é deixar claro, sem rodeios, o que já está de fato ligado a dados reais e o que ainda é dado de exemplo.
Resumo: o que é real e o que é mock
| Área | Estado | Documentado em |
|---|---|---|
| Seções visíveis na home (flags + preferência do usuário) | Real | Este documento |
| Perfil vendedor/supervisor da home | Mock (constante fixa no código) | Este documento |
| Gauge de performance na home | Mock | Métricas e Indicadores |
| Tela de Indicadores | Mock (todos os valores são zero fixo) | Métricas e Indicadores |
| Detalhe de métrica | Mock | Métricas e Indicadores |
| Ranking | Mock (clientes de teste + tabela de pontos fixa) | Ranking e Engajamento |
| Detalhe de engajamento de um cliente | Híbrido: resumo real, evolução mensal mock | Ranking e Engajamento |
| Cortes de pedido | Mock | Avisos e Comunicação |
| Pesquisas pendentes | Mock | Avisos e Comunicação |
| Mural de comunicação | Real (publicationService) | Avisos e Comunicação |
| Novidades da versão | Real (versionService) | Avisos e Comunicação |
| Painel de últimas mudanças de sincronização | Real | Avisos e Comunicação |
| Avaliação de satisfação | Só estado local, sem envio | Avisos e Comunicação |
| Assistente virtual (chat) | Entrada real, resposta é texto fixo (lorem ipsum) | Este documento |
Arquivos-chave
| Arquivo | Responsabilidade |
|---|---|
features/home/home.tsx + home-controller.tsx | Screen e hub de estado da home (mais de 1.800 linhas) |
storage/home-management/home-management.storage.ts | Preferência do usuário sobre quais seções mostrar |
app/home/* | Mais de duas dezenas de subtelas alcançáveis a partir da home |
As seções da home são reais, controladas por flag e por preferência do usuário
A home é montada a partir de uma lista de seções possíveis (performance, shortcuts, feedback, quick-actions, communication, release), cada uma exigindo tanto uma flag de configuração da organização quanto uma preferência individual do usuário, gravada em storage/home-management/home-management.storage.ts:
// home-controller.tsx
const shouldShowFeedbackSection =
homeManagementPreferences.rating && isForceRatingEnabled && isFeedbackVisible;
const shouldShowCommunicationSection =
homeManagementPreferences["communication-wall"] && isCommunicationWallEnabled;
const shouldShowReleaseSection =
homeManagementPreferences["version-news"] && (isVersionNewsEnabled || isUsageTipsEnabled);
// storage/home-management/home-management.storage.ts
export const DEFAULT_HOME_MANAGEMENT_PREFERENCES: HomeManagementPreferences = {
performance: true,
engagement: false,
"quick-actions": true,
"communication-wall": true,
"dashboard-reports": true,
ranking: false,
"version-news": true,
rating: true,
};
Essa preferência é editável pelo próprio usuário numa tela de gerenciamento da home (dentro da área de perfil/loja), e persistida em MMKV, reativa via pub-sub, no mesmo padrão de outros storages já documentados.
O perfil da home (vendedor/supervisor) é uma constante fixa, não o usuário logado
Esse é o achado mais importante deste documento. A home pode se comportar como "vendedor" ou "supervisor", e decidir se mostra métricas de performance ou só um resumo de vendas finalizadas no mês, mas essa decisão não vem do usuário autenticado, vem de duas constantes fixas no topo do arquivo do controller, com um comentário explícito orientando a editar o código para trocar:
// home-controller.tsx
// Mock principal da Home: altere aqui para alternar entre vendedor/supervisor
// e entre fluxo com métricas ou com vendas finalizadas no mês.
const HOME_PROFILE: HomeProfile = "supervisor";
const HOME_HAS_METRICS = true;
// ...
const homeProfile = HOME_PROFILE;
const hasPerformanceMetrics = HOME_HAS_METRICS;
const isSupervisor = homeProfile === "supervisor";
Enquanto isso não for conectado ao perfil real do usuário autenticado, todo usuário que abrir o app vê a home no modo "supervisor com métricas", independente de quem ele seja de fato.
Mapa de subtelas (app/home/*)
A home é o ponto de partida de mais de 25 rotas de subtelas. Agrupando por tema:
| Grupo | Rotas |
|---|---|
| Métricas e indicadores | indicadores, detalhes-metrica, detalhes-performance |
| Ranking e engajamento | ranking, classificacao, detalhes-engajamento |
| Assistente virtual e IA | assistente-virtual (+ -chat, -historico, -loading), sugestao-pedido-* (alertas/loading/parâmetros/resultado), analise-cliente |
| Comunicação e novidades | mural-comunicacao (+ detalhes), novidades (+ detalhes-versao, sugestoes-novidades), dicas-de-uso (+ detalhes), o-que-vem-por-ai (+ detalhes) |
| Avisos operacionais | cortes-de-pedidos, pesquisas-pendentes (+ responder-pesquisa) |
| Chat interno | chat-interno, iniciar-chat, abrir-chat |
O assistente virtual: entrada real, resposta fixa
Tocar em "Assistente Virtual" na home navega de fato para /home/assistente-virtual, uma tela real com histórico de conversa e perguntas sugeridas. O que não é real é a resposta: o arquivo de dados do assistente já vem com uma resposta fixa em latim de recheio, usada para qualquer pergunta:
// home-virtual-assistant.data.ts
export const VIRTUAL_ASSISTANT_LOREM_REPLY =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
O restante do assistente virtual, como um serviço de IA de fato conversando com o vendedor, é um fluxo próprio ainda não implementado, fora do escopo deste documento.
Armadilhas conhecidas
Antes de investigar "por que a home mostra dados errados para este vendedor", confirme se o problema não é simplesmente HOME_PROFILE/HOME_HAS_METRICS sendo constantes fixas, não dependentes de quem está logado. E ao testar qualquer parte da home, lembre que quase todo widget de métrica, ranking ou indicador que parece "vazio" ou "zerado" pode estar assim porque é mesmo um placeholder fixo, não porque falta sincronizar alguma coisa.