Files
botino/public/app.js
Lucas Tettamanti c786e47160 chat: layout 3 columnas + fix URL WooCommerce API
- Rediseño de la vista Chat: lista de conversaciones a la izquierda,
  burbujas al centro, inspector+simulador apilados a la derecha
- chat-simulator pasa a layout vertical con config 2×2 más compacto
- Fix: construir base URL con /wp-json/{api_version} en los tres
  clientes Woo (wooSnapshot, wooOrders, woo.js) — antes llamaba a
  /products en vez de /wp-json/wc/v3/products
- Fix: syncFromWoo y syncProducts usan safeFetch (con credentials)
  en vez de fetch directo, evitando 401/404 por cookie de sesión faltante

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 22:56:50 -03:00

46 lines
1.5 KiB
JavaScript

import "./components/ops-shell.js";
import "./components/home-dashboard.js";
import "./components/run-timeline.js";
import "./components/chat-simulator.js";
import "./components/conversation-inspector.js";
import "./components/conversation-list.js";
import "./components/conversations-crud.js";
import "./components/users-crud.js";
import "./components/products-crud.js";
import "./components/aliases-crud.js";
import "./components/recommendations-crud.js";
import "./components/quantities-crud.js";
import "./components/orders-crud.js";
import "./components/takeovers-crud.js";
import "./components/zone-map-editor.js";
import "./components/settings-crud.js";
import "./components/system-users-crud.js";
import "./components/audit-log.js";
import { connectSSE } from "./lib/sse.js";
import { initRouter } from "./lib/router.js";
(async function bootstrapShell() {
// Gate de sesión: si no hay cookie válida, redirigimos a /login.
// El HTML del shell carga sin auth, pero la data API exige cookie, así que
// sin sesión todo el SPA quedaría con 401s vacíos.
let user = null;
try {
const res = await fetch("/api/auth/me", { credentials: "include" });
if (res.ok) {
const data = await res.json();
if (data?.ok) user = data.user;
}
} catch {}
if (!user) {
const next = encodeURIComponent(window.location.pathname + window.location.search);
window.location.replace(`/login?next=${next}`);
return;
}
window.__USER__ = user;
connectSSE();
setTimeout(() => initRouter(), 0);
})();