Frontend Web - Roteamento¶
Este documento descreve a estrutura real de roteamento do frontend.
Fonte de verdade¶
src/App.tsxsrc/routes/index.tssrc/routes/publicRoutes.tsxsrc/routes/sharedRoutes.tsxsrc/routes/clientRoutes.tsxsrc/routes/professionalRoutes.tsxsrc/routes/adminRoutes.tsx
Como as rotas são aplicadas¶
appRoutesconcatena todos os grupos de rota.App.tsxaplica shell persistente com<Route element={<Layout/>}>.- Quando
protectionestá presente, a rota é envolvida porProtectedRoute. - Páginas são renderizadas dentro de
Layoutvia<Outlet />. - Cada rota usa
lazy()para code splitting por feature.
Proteção de rotas¶
ProtectedRoute suporta:
- autenticação obrigatória
requiredRolerequiredModule- regras de onboarding profissional
- gate de onboarding obrigatório da cliente (novas contas)
- exceções de observação para admin
Gate de onboarding da cliente¶
Para clientes com method_onboarding_version = 0, o acesso geral é bloqueado até concluir /health-info.
Rotas liberadas durante o bloqueio:
/health-info- rotas legais (
/legal/consent,/privacy,/my-data,/data-export,/delete-account,/cookie-preferences,/consents,/lgpd/requests) /coursese/courses/:id/bundlese/bundles/:id/professionalse/professionals/:id
Clientes legadas (method_onboarding_version = 1) não entram nesse bloqueio obrigatório.
Prefetch¶
src/routes/routePreload.ts aplica prefetch por:
- perfil do usuário (
admin,professional,client) - módulos efetivos habilitados
- rotas compartilhadas relevantes
Navegação e descoberta¶
- sidebar em árvore com grupos colapsáveis e persistência por perfil (
localStorage); - hubs de navegação por domínio (
/admin/marketplace,/professional/educacional,/client/aprendizado); - command palette global com atalho
⌘K/Ctrl+K, índice de rotas filtradas por permissão e ações rápidas.
Grupos de rota¶
Públicas¶
- home, autenticação, design system, not found
Compartilhadas¶
- onboarding, dashboard, profile, appointments, chat, notifications, legal consent e privacidade
Cliente¶
- ciclos, registro diário, análise, saúde, profissionais, pagamentos, hub de aprendizado e cursos
Profissional¶
- pacientes, agenda, CRM, financeiro, hub educacional e cursos
Admin¶
- gestão (planos/promoções/usuários), Billings, dashboard drilldown, gestão de módulos, documentos legais e hub marketplace
Princípios de manutenção¶
- Toda nova rota deve ser registrada em um dos arquivos de
src/routes/*Routes.tsx. - Não adicionar lógica de autorização fora do
ProtectedRoutesem necessidade explícita. - Manter import lazy apontando para
src/modules/**/page. - Atualizar
routePreload.tsquando a nova rota for crítica para experiência pós-login.
Referência de marketplace¶
Para rotas e módulos de permissão do domínio de cursos, consultar: