- 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>
46 lines
1.5 KiB
JavaScript
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);
|
|
})();
|