Files
melgarafaelandClaude Opus 5.5 ec8f52a8c6 fix(admin): suspender ou reativar sem efeito avisa "nada mudou", não "sucesso"
As rotas respondem 200 {changed:false, motivo} quando a empresa já estava
no estado pedido — outro admin agiu antes e a tela estava velha. Os hooks
ignoravam a resposta e mostravam "Tenant suspenso/reativado com sucesso";
na suspensão por cobrança o admin leria "reativado" com a empresa parada.
Agora changed:false vira toast.info "Nada mudou" com o motivo traduzido
(pt/es), e motivo desconhecido não inventa causa.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 13:47:25 -03:00
..

hooks/

React hooks compartilhados (Client Components).

A popular conforme as specs:

  • useSupabaseRealtime.ts — subscribe a postgres_changes filtrado por tenant
  • useToast.ts — notificações
  • useDebouncedCallback.ts
  • useTenant.ts — contexto do tenant atual (lê de cookie/header validado pelo server)
  • useFeatureFlag.ts — flags simples por tenant (ex: ai_handoff_enabled)

Convenções:

  • Sempre "use client" no topo
  • Validar input com Zod onde aplicável
  • Cleanup explícito em useEffect (canais Realtime, listeners, timers)