Page:
Gerenciamento de Estado
2
Gerenciamento de Estado
Rafael Lopes edited this page 2026-06-02 09:08:14 -03:00
Gerenciamento de Estado
Visao geral
O frontend nao usa Redux, Zustand ou Context global amplo.
O estado e mantido de forma local por:
useState;useEffect;- hooks especificos por modulo;
sessionStoragepara sessao autenticada.
Sessao
Arquivo:
src/modules/auth/services/sessionService.js
Responsavel por:
- ler usuario atual;
- ler token atual;
- identificar perfil;
- limpar sessao.
Chat
Arquivo principal:
src/modules/chat/hooks/useChat.js
Concentra:
- contatos/conversas;
- mensagens por contato;
- conversa ativa;
- envio de mensagem;
- assumir/liberar/fechar atendimento;
- transferencia;
- carregamento de midia.
WhatsApp Socket
Arquivo:
src/shared/hooks/useWhatsappSocket.js
Mantem estado de:
- conexao;
- QR Code;
- status do WhatsApp;
- ultima mensagem recebida.
Painel administrativo
O modulo management usa estado local por tela/componente.
Servicos em src/modules/management/services fazem a comunicacao com a API e retornam dados normalizados.
Services HTTP
Arquivo principal:
src/shared/services/apiClient.js
Responsavel por:
- montar URL a partir de
VITE_API_URL; - aplicar
Content-Type: application/jsonquando necessario; - fazer parse de JSON/texto;
- padronizar mensagens de erro;
- preservar
statusepayloadno erro.
O Bearer Token nao fica espalhado pelos services. Ele e anexado pelo interceptor:
src/shared/services/authFetch.js
Quando a API retorna 401, a sessao e limpa e o usuario volta para /login.
Diretriz
Antes de adicionar uma ferramenta global de estado, prefira:
- estado local na tela;
- hook especifico do modulo;
- service para API;
- somente depois avaliar estado global.