From 5c11763386c5031abd33b743abc7508bddb1c9d6 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Mon, 20 Oct 2025 12:45:49 -0300 Subject: [PATCH] Fix: Refresh de Datos Widgets --- .../nacionales/HomeCarouselNacionalWidget.tsx | 3 ++- .../legislativas/nacionales/HomeCarouselWidget.tsx | 1 + .../legislativas/nacionales/PanelNacionalWidget.tsx | 2 ++ .../nacionales/ResultadosNacionalesCardsWidget.tsx | 1 + .../nacionales/components/MapaNacional.tsx | 11 ++++++----- .../nacionales/components/MapaProvincial.tsx | 5 +++-- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselNacionalWidget.tsx b/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselNacionalWidget.tsx index 49b2e05..aa3bf40 100644 --- a/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselNacionalWidget.tsx +++ b/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselNacionalWidget.tsx @@ -47,7 +47,8 @@ export const HomeCarouselNacionalWidget = ({ eleccionId, categoriaId, titulo }: const { data, isLoading, error } = useQuery({ queryKey: ['homeResumenNacional', eleccionId, categoriaId], queryFn: () => getHomeResumenNacional(eleccionId, categoriaId), - }); + refetchInterval: 30000, + }) if (isLoading) return
Cargando widget...
; if (error || !data) return
No se pudieron cargar los datos.
; diff --git a/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselWidget.tsx b/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselWidget.tsx index 66b1722..908b035 100644 --- a/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselWidget.tsx +++ b/Elecciones-Web/frontend/src/features/legislativas/nacionales/HomeCarouselWidget.tsx @@ -48,6 +48,7 @@ export const HomeCarouselWidget = ({ eleccionId, distritoId, categoriaId, titulo const { data, isLoading, error } = useQuery({ queryKey: ['homeResumen', eleccionId, distritoId, categoriaId], queryFn: () => getHomeResumen(eleccionId, distritoId, categoriaId), + refetchInterval: 30000, }); if (isLoading) return
Cargando widget...
; diff --git a/Elecciones-Web/frontend/src/features/legislativas/nacionales/PanelNacionalWidget.tsx b/Elecciones-Web/frontend/src/features/legislativas/nacionales/PanelNacionalWidget.tsx index 29fc37c..63d9c25 100644 --- a/Elecciones-Web/frontend/src/features/legislativas/nacionales/PanelNacionalWidget.tsx +++ b/Elecciones-Web/frontend/src/features/legislativas/nacionales/PanelNacionalWidget.tsx @@ -73,6 +73,7 @@ const MobileResultsCard = ({ const { data } = useSuspenseQuery({ queryKey: ['panelElectoral', eleccionId, ambitoId, categoriaId], queryFn: () => getPanelElectoral(eleccionId, ambitoId, categoriaId), + refetchInterval: 30000, }); useEffect(() => { @@ -157,6 +158,7 @@ const PanelContenido = ({ eleccionId, ambitoActual, categoriaId }: { eleccionId: const { data } = useSuspenseQuery({ queryKey: ['panelElectoral', eleccionId, ambitoActual.id, categoriaId], queryFn: () => getPanelElectoral(eleccionId, ambitoActual.id, categoriaId), + refetchInterval: 30000, }); // Si la API devolvió la bandera 'sinDatos', mostramos un mensaje. if (data.sinDatos) { diff --git a/Elecciones-Web/frontend/src/features/legislativas/nacionales/ResultadosNacionalesCardsWidget.tsx b/Elecciones-Web/frontend/src/features/legislativas/nacionales/ResultadosNacionalesCardsWidget.tsx index 5fac9a6..87364d2 100644 --- a/Elecciones-Web/frontend/src/features/legislativas/nacionales/ResultadosNacionalesCardsWidget.tsx +++ b/Elecciones-Web/frontend/src/features/legislativas/nacionales/ResultadosNacionalesCardsWidget.tsx @@ -29,6 +29,7 @@ export const ResultadosNacionalesCardsWidget = ({ focoCategoriaId, cantidadResultados }), + refetchInterval: 30000, }); if (isLoading) return
Cargando resultados por provincia...
; diff --git a/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaNacional.tsx b/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaNacional.tsx index b9b0894..62da876 100644 --- a/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaNacional.tsx +++ b/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaNacional.tsx @@ -84,6 +84,7 @@ export const MapaNacional = ({ eleccionId, categoriaId, nivel, nombreAmbito, nom const response = await axios.get(url); return response.data; }, + refetchInterval: 30000, }); const { data: geoDataNacional } = useSuspenseQuery({ @@ -104,7 +105,7 @@ export const MapaNacional = ({ eleccionId, categoriaId, nivel, nombreAmbito, nom } else if (nivel === 'provincia') { const nombreNormalizado = normalizarTexto(nombreAmbito); const manualConfig = PROVINCE_VIEW_CONFIG[nombreNormalizado]; - + let provinceConfig: ViewConfig | undefined; if (manualConfig) { @@ -119,8 +120,8 @@ export const MapaNacional = ({ eleccionId, categoriaId, nivel, nombreAmbito, nom } if (provinceConfig) { - setPosition(provinceConfig); - initialProvincePositionRef.current = provinceConfig; + setPosition(provinceConfig); + initialProvincePositionRef.current = provinceConfig; } } }, [nivel, nombreAmbito, geoDataNacional, isMobileView, isMobileSmall]); @@ -195,7 +196,7 @@ export const MapaNacional = ({ eleccionId, categoriaId, nivel, nombreAmbito, nom if (newZoom > initialProvincePositionRef.current.zoom) { toast.success('Desplazamiento Habilitado', { icon: '🖐️', - style: { background: '#32e5f1ff', color: 'white', zIndex: 9999}, + style: { background: '#32e5f1ff', color: 'white', zIndex: 9999 }, duration: 1000, }); } @@ -236,7 +237,7 @@ export const MapaNacional = ({ eleccionId, categoriaId, nivel, nombreAmbito, nom const isZoomOutDisabled = (nivel === 'provincia' && initialProvincePositionRef.current && position.zoom <= initialProvincePositionRef.current.zoom) || (nivel === 'pais' && position.zoom <= (isMobileView ? 1.4 : 1.05)); - + // 2. Todas las props 'className' ahora usan el objeto 'styles' const mapContainerClasses = `${styles.mapaComponenteContainer} ${panEnabled ? styles.mapPannable : styles.mapLocked}`; diff --git a/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaProvincial.tsx b/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaProvincial.tsx index 872c3e4..f68d310 100644 --- a/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaProvincial.tsx +++ b/Elecciones-Web/frontend/src/features/legislativas/nacionales/components/MapaProvincial.tsx @@ -31,6 +31,7 @@ export const MapaProvincial = ({ eleccionId, categoriaId, distritoId, nombreProv const response = await axios.get(url); return response.data; }, + refetchInterval: 30000, }); const { data: geoData } = useSuspenseQuery({ @@ -49,10 +50,10 @@ export const MapaProvincial = ({ eleccionId, categoriaId, distritoId, nombreProv if (municipioGeo) { const municipioFeature = feature(geoData, municipioGeo); const centroid = geoCentroid(municipioFeature); - if(nombreProvincia.toUpperCase() === 'CAPITAL FEDERAL'){ + if (nombreProvincia.toUpperCase() === 'CAPITAL FEDERAL') { onCalculatedCenter(centroid as PointTuple, 180); } else { - onCalculatedCenter(centroid as PointTuple, 10); + onCalculatedCenter(centroid as PointTuple, 10); } } }