| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  | // src/features/legislativas/nacionales/ResultadosNacionalesCardsWidget.tsx
 | 
					
						
							|  |  |  | import { useQuery } from '@tanstack/react-query'; | 
					
						
							|  |  |  | import { getResumenPorProvincia } from '../../../apiService'; | 
					
						
							|  |  |  | import { ProvinciaCard } from './components/ProvinciaCard'; | 
					
						
							| 
									
										
										
										
											2025-10-04 20:41:23 -03:00
										 |  |  | // 1. La importación de CSS ahora se hace como un módulo
 | 
					
						
							|  |  |  | import styles from './ResultadosNacionalesCardsWidget.module.css'; | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | interface Props { | 
					
						
							|  |  |  |     eleccionId: number; | 
					
						
							| 
									
										
										
										
											2025-10-01 10:03:01 -03:00
										 |  |  |     focoDistritoId?: string; | 
					
						
							|  |  |  |     focoCategoriaId?: number; | 
					
						
							|  |  |  |     cantidadResultados?: number; | 
					
						
							| 
									
										
										
										
											2025-10-04 20:41:23 -03:00
										 |  |  |     mostrarBancas?: boolean; | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-01 10:03:01 -03:00
										 |  |  | export const ResultadosNacionalesCardsWidget = ({  | 
					
						
							|  |  |  |     eleccionId,  | 
					
						
							|  |  |  |     focoDistritoId,  | 
					
						
							|  |  |  |     focoCategoriaId,  | 
					
						
							|  |  |  |     cantidadResultados, | 
					
						
							| 
									
										
										
										
											2025-10-04 20:41:23 -03:00
										 |  |  |     mostrarBancas = false | 
					
						
							| 
									
										
										
										
											2025-10-01 10:03:01 -03:00
										 |  |  | }: Props) => { | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  |     const { data, isLoading, error } = useQuery({ | 
					
						
							| 
									
										
										
										
											2025-10-01 10:03:01 -03:00
										 |  |  |         queryKey: ['resumenPorProvincia', eleccionId, focoDistritoId, focoCategoriaId, cantidadResultados], | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         queryFn: () => getResumenPorProvincia(eleccionId, { | 
					
						
							|  |  |  |             focoDistritoId, | 
					
						
							|  |  |  |             focoCategoriaId, | 
					
						
							|  |  |  |             cantidadResultados | 
					
						
							|  |  |  |         }), | 
					
						
							| 
									
										
										
										
											2025-10-20 12:45:49 -03:00
										 |  |  |         refetchInterval: 30000, | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (isLoading) return <div>Cargando resultados por provincia...</div>; | 
					
						
							|  |  |  |     if (error) return <div>Error al cargar los datos.</div>; | 
					
						
							| 
									
										
										
										
											2025-10-01 10:03:01 -03:00
										 |  |  |     if (!data || data.length === 0) return <div>No hay resultados para mostrar con los filtros seleccionados.</div> | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-04 20:41:23 -03:00
										 |  |  |     // 2. Todas las props 'className' ahora usan el objeto 'styles'
 | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  |     return ( | 
					
						
							| 
									
										
										
										
											2025-10-04 20:41:23 -03:00
										 |  |  |         <section className={styles.cardsWidgetContainer}> | 
					
						
							|  |  |  |             <div className={styles.cardsGrid}> | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  |                 {data?.map(provinciaData => ( | 
					
						
							| 
									
										
										
										
											2025-10-01 10:03:01 -03:00
										 |  |  |                     <ProvinciaCard  | 
					
						
							|  |  |  |                         key={provinciaData.provinciaId}  | 
					
						
							|  |  |  |                         data={provinciaData}  | 
					
						
							|  |  |  |                         mostrarBancas={mostrarBancas}  | 
					
						
							|  |  |  |                     /> | 
					
						
							| 
									
										
										
										
											2025-09-28 19:04:09 -03:00
										 |  |  |                 ))} | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  |         </section> | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | }; |