C4 - Nível 3 (Componentes Frontend)¶
Objetivo¶
Descrever os componentes internos do frontend web com base na arquitetura modular atual e nas rotas efetivamente registradas.
Composição de rotas¶
Arquivos fonte: src/routes/*.tsx + src/App.tsx
publicRoutes: home, auth, design-system, not-foundsharedRoutes: dashboard, onboarding, profile, appointments, chat, notificationsclientRoutes: ciclos, saúde, pagamentos, cursos, profissionaisprofessionalRoutes: pacientes, agenda, crm, financeiro, cursosadminRoutes: gestão, billings admin, dashboard drilldown, módulos, cursos admin
App.tsx aplica ProtectedRoute quando protection está definido.
Arquitetura por submódulo¶
Padrão dinâmico:
page.tsx(orquestra)hooks/*(estado, query/mutation)services/*(acesso HTTP)view.tsx(render puro)components/*types.tsemappers.ts(quando necessário)
Fluxo obrigatório:
page -> hook -> serviceview <- page
Componentes transversais¶
ProtectedRoute: auth + role + requiredModule + regra de onboarding profissionalProfileRouter: roteamento de perfil por tipo de usuárioroutePreload.ts: prefetch por perfil/móduloAccessibilityPanel: controles de acessibilidade globais
Quality gates arquiteturais¶
Scripts de enforcement:
check:deps:modulescheck:deps:modules:strict
Regras checadas incluem:
viewsemuseQuery/useMutationviewsem import de service/API localservicesem import de hook/viewpageorquestrando via hook
Riscos técnicos¶
- existência de pastas globais legadas (
src/hooks,src/mappers,src/types,src/services) pode gerar acoplamento se não houver disciplina de fronteira.