Files
VPS 4 Builder 3042ddca38 feat(newwhats): frontend do plugin (Inbox/Sessions/Secretária) em tela cheia
- /wa-inbox, /wa-sessions e /wa-secretaria rodam sem a sidebar do scoreodonto
  (isStandaloneView); cada tela tem seu "Voltar" (Secretária ganhou botão na ThinNav).
- SessionsView: banner "Você já possui acesso ao WhatsApp" quando há sessão ativa.
- avatares: usa a URL do CDN (contactAvatarUrl/instance.avatar) direto; Avatar
  exibe sem depender de version; self-heal no onError re-busca a foto atual.
- deps: framer-motion, immer. Dev override com HMR (docker-compose.dev.yml).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 20:54:24 +02:00

36 lines
1.0 KiB
TypeScript

import path from 'path';
import { defineConfig, loadEnv } from 'vite';
import react from '@vitejs/plugin-react';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, '.', '');
// Servido atrás de um proxy TLS (ex.: dev.scoreodonto.com via nginx/traefik):
// libera o host e roteia o websocket de HMR por wss:443. Só ativa quando
// DEV_PUBLIC_HOST está definido (container dev) — `npm run dev` local não muda.
const proxiedHost = process.env.DEV_PUBLIC_HOST;
return {
server: {
port: 3000,
host: 'localhost',
...(proxiedHost ? {
allowedHosts: [proxiedHost],
hmr: { protocol: 'wss', host: proxiedHost, clientPort: 443 },
} : {}),
},
plugins: [
react(),
tailwindcss(),
],
define: {
'process.env.API_KEY': JSON.stringify(env.GEMINI_API_KEY),
'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY)
},
resolve: {
alias: {
'@': path.resolve(__dirname, '.'),
}
}
};
});