import React from 'react'; import ReactDOM from 'react-dom/client'; import { registerSW } from 'virtual:pwa-register'; import App from './app/App.jsx'; import { installGlobalErrorReporter } from './utils/errorReporter.js'; import './styles/tokens.css'; import './styles/app.css'; installGlobalErrorReporter(); // autoUpdate: toma la version nueva del service worker sola en cuanto esta lista, sin pedirle // nada al usuario (no hay riesgo de mostrar una version vieja de la UI por mucho tiempo). registerSW({ immediate: true }); // skipWaiting+clientsClaim (activados por autoUpdate) hacen que el service worker nuevo tome // control solo, pero eso NO refresca la pagina ya abierta -- el usuario seguia viendo JS/CSS // viejo hasta un F5 manual. Con esto, en cuanto el nuevo SW toma control, se refresca sola una // vez (la bandera evita un loop si el evento dispara mas de una vez). if ('serviceWorker' in navigator) { let reloaded = false; navigator.serviceWorker.addEventListener('controllerchange', () => { if (reloaded) return; reloaded = true; window.location.reload(); }); } ReactDOM.createRoot(document.getElementById('root')).render( );