Frontend Web - Hooks Customizados¶
Este documento descreve o modelo atual de hooks no frontend modular.
Estrutura atual¶
O padrão principal é hook por submódulo:
src/modules/<dominio>/<submodulo>/hooks/use<Feature>Page.ts
Exemplos ativos:
src/modules/client/learn-course/hooks/useClientLearnCoursePage.tssrc/modules/cycles/details/hooks/useCyclesDetailsPage.tssrc/modules/shared/appointments/hooks/useAppointmentsPage.tssrc/modules/admin/billings/day-based-rules/hooks/useDayBasedRulesPage.ts
Também existem hooks compartilhados globais em src/hooks/* para casos transversais.
Responsabilidade dos hooks¶
- Orquestrar estado de tela.
- Executar
useQuery/useMutation. - Chamar serviços do próprio submódulo.
- Expor contrato de props consumido por
view.tsx.
Regras arquiteturais¶
- Hook pode importar service.
- Hook não pode importar
view.tsx. - Hook não deve depender de componentes visuais.
Exemplo de fluxo¶
page.tsxchamauseFeaturePage().- Hook retorna dados e callbacks.
view.tsxrecebe props e renderiza.
Critérios de qualidade para novos hooks¶
- Nome explícito por feature.
- Retorno tipado em
types.tslocal. - Separação entre estado derivado e efeitos colaterais.
- Nenhuma importação circular entre
hooks,services,view.