# 🛠️ Resoluções: Front-end & Conectividade Este documento apresenta as soluções técnicas para os problemas de latência, fontes e responsividade identificados. ## 1. Conectividade & Performance (API/Backend) **Problema:** Sincronização lenta e alto custo de desenvolvimento manual. **Resolução Profissional:** ### A. Implementação do TanStack Query (React Query) O uso de `axios` direto em serviços causa "Waterfall de Requisições". O React Query deve ser adotado para: - **Caching Automático:** Evita buscar os mesmos dados ao alternar entre abas do sistema. - **Optimistic Updates:** Melhora a percepção de velocidade (o UI atualiza antes da resposta do server). ### B. Service Factory via Contratos Em vez de escrever `boletosService.js` manualmente, use os arquivos JSON (`prafrot-routes.json`) como fonte de verdade: ```javascript // Exemplo de como usar o apiRouteManager para reduzir boilerplace export const useFeatureData = (routeKey) => { const route = apiRouteManager.getRoute(routeKey); return useQuery({ queryKey: [routeKey], queryFn: () => api.get(route.path) }); }; ``` --- ## 2. Guerra das Fontes (Typography System) **Problema:** Fontes configuradas mas não carregadas. **Resolução Profissional:** ### A. Carregamento Crítico (index.html) Adicione o `preconnect` para eliminar a latência de DNS das fontes: ```html ``` ### B. Fallback de Segurança (index.css) Garantir que o `:root` tenha uma falha segura (system fonts) enquanto a webfont carrega: ```css :root { --font-main: 'Inter', -apple-system, system-ui, sans-serif; } ``` --- ## 3. Responsividade Fluida (War Room Standard) **Problema:** Uso excessivo de `px` fixos e instabilidade no `radius`. **Resolução Profissional:** ### A. Substituição de Pixels por Fluid Typography Em vez de `h-[600px]`, utilize unidades relativas ou containers flexíveis com `min-height`. - **Regra de Ouro:** Se o valor é > 20px, ele provavelmente deveria ser `clamp()` ou `%`. ### B. Ajuste de Bordas (Radius-Gate) Substituir `--radius: 1vw` por uma escala que respeite limites físicos: ```css :root { /* Não fica quadrado no mobile, nem redondo demais no desktop */ --radius: clamp(8px, 1.2vw, 20px); } ``` --- ## 🚀 Pontos de Melhoria na Organização 1. **Módulo de Mocks Independente:** Mover todos os mocks para uma pasta `.mocks` na raiz da feature, para que o bundle de produção não carregue dados desnecessários. 2. **Shared Hooks Layer:** Centralizar lógicas de "Busca de Placa" ou "Validação de CNPJ" em `src/hooks/shared` para evitar duplicação entre Financeiro e Frota. 3. **Typed Contracts:** Se possível, migrar os arquivos `.json` de rotas para arquivos `.ts` (Typescript) para ganhar auto-complete no VS Code e evitar erros de digitação em caminhos de API.