evo-ai-frontend-community¶
TypeScript / React 19 / Vite · porta 5173 (dev), servido via Nginx em produção
Dashboard web — chat, gerenciamento de contatos e agentes.
Estrutura por feature + camadas¶
src/
├── components/base/ # componentes base (Button, Card, Input)
├── components/[domain]/ # componentes por feature
├── pages/ # páginas
├── services/core/ # cliente HTTP base
├── services/[domain]/ # APIs por feature
├── contexts/ # React Context (Auth, Org, Theme...)
├── hooks/ # hooks customizados (useDarkMode, useLanguage)
├── types/ # interfaces TypeScript
├── utils/, constants/
├── store/ # Zustand (state management leve)
├── i18n/ # i18next (EN, PT-BR)
└── styles/ # config Tailwind
e2e/ # testes Playwright
Padrões¶
Formulários controlados com React Hook Form + Zod.
Design system compartilhado:
@evoapi/design-system.Estado global via Context + hooks.
CSS utility-first (Tailwind), sem CSS custom paralelo.
"strict": truenotsconfig.json.
Build & testes¶
cd evo-ai-frontend-community
pnpm install
pnpm run dev # http://localhost:5173
pnpm run build # produção → dist/
pnpm run lint
pnpm run test # Vitest
pnpm run e2e # Playwright
Produção¶
A imagem é agnóstica de ambiente — builda com placeholders VITE_*_PLACEHOLDER
fixos, e um docker-entrypoint.sh substitui pelos valores reais via sed no
boot do container, evitando rebuild por domínio.