import { createRoot } from 'react-dom/client';

import { onSesionVencida } from '@/core/api/http';
import { esDominioAliados } from '@/shell/dominio';
import { sesionVencida } from '@/shell/funcional/sesion';
import { ConsultorioLayout } from '@/shell/layout/ConsultorioLayout';
import { ShellProvider } from '@/shell/ShellContext';

/**
 * FUNCIONAL.exec agregaba el CSS del dominio al final de la cascada:
 * Aliados → estilos.css; el resto → styleNew.css (que CONSULTORIO ya carga, y se vuelve a
 * poner al final para conservar el mismo orden que generaba Uniface).
 */
function cssDelDominio() {
  const link = document.createElement('link');
  link.rel = 'stylesheet';
  link.type = 'text/css';
  link.href = esDominioAliados() ? '/css/estilos.css' : '/css/styleNew.css';
  document.head.appendChild(link);
}

cssDelDominio();

// Sesión vencida sin poder renovarse (core/api/http.ts): aviso y cierre, una vez por sesión
onSesionVencida(() => void sesionVencida());

createRoot(document.getElementById('app')!).render(
  // Sin StrictMode: los efectos de arranque (abrirUrl, contenidos) son operaciones del
  // legado que deben correr una sola vez.
  <ShellProvider>
    <ConsultorioLayout />
  </ShellProvider>
);
