Fix Boostrap y Try Cache

This commit is contained in:
2025-09-10 14:20:44 -03:00
parent 6309003536
commit 153c0f92da
14 changed files with 276 additions and 142 deletions

View File

@@ -63,33 +63,30 @@ if (import.meta.env.DEV) {
} else {
// --- MODO PRODUCCIÓN ---
// Exponemos la función de renderizado para el bootstrap.js
const renderWidgets = () => {
const widgetContainers = document.querySelectorAll('[data-elecciones-widget]');
if (widgetContainers.length === 0) {
console.warn('React: ADVERTENCIA - No se encontró ningún elemento en el DOM para renderizar un widget. Verifica que el HTML contenga <div data-elecciones-widget="...">.');
}
widgetContainers.forEach(container => {
const widgetName = (container as HTMLElement).dataset.eleccionesWidget;
// La función de renderizado acepta el contenedor y las props
const renderWidgets = (container: HTMLElement, props: DOMStringMap) => {
const widgetName = props.eleccionesWidget;
if (widgetName && WIDGET_MAP[widgetName]) {
const WidgetComponent = WIDGET_MAP[widgetName];
const root = ReactDOM.createRoot(container);
if (widgetName && WIDGET_MAP[widgetName]) {
const WidgetComponent = WIDGET_MAP[widgetName];
const root = ReactDOM.createRoot(container);
root.render(
<React.StrictMode>
<QueryClientProvider client={queryClient}>
<WidgetComponent />
</QueryClientProvider>
</React.StrictMode>
);
} else {
console.error(`React: ERROR - No se encontró un componente para el nombre de widget: "${widgetName}"`);
}
});
// Pasamos todas las props (ej. { eleccionesWidget: '...', focoMunicipio: '...' })
// al componente que se va a renderizar.
root.render(
<React.StrictMode>
<QueryClientProvider client={queryClient}>
<WidgetComponent {...props} />
</QueryClientProvider>
</React.StrictMode>
);
} else {
console.error(`React: ERROR - No se encontró un componente para el nombre de widget: "${widgetName}"`);
}
};
// La función expuesta ahora se llamará por cada widget, no una sola vez.
(window as any).EleccionesWidgets = {
render: renderWidgets
render: renderWidgets
};
}