// src/features/legislativas/nacionales/HomeCarouselNacionalWidget.tsx import { useQuery } from '@tanstack/react-query'; import { getHomeResumenNacional } from '../../../apiService'; import { ImageWithFallback } from '../../../components/common/ImageWithFallback'; import { assetBaseUrl } from '../../../apiService'; import { Swiper, SwiperSlide } from 'swiper/react'; import { Navigation, A11y } from 'swiper/modules'; import { TfiMapAlt } from "react-icons/tfi"; // @ts-ignore import 'swiper/css'; // @ts-ignore import 'swiper/css/navigation'; import styles from './HomeCarouselWidget.module.css'; interface Props { eleccionId: number; categoriaId: number; titulo: string; mapLinkUrl: string; } const formatPercent = (num: number | null | undefined) => `${(num || 0).toFixed(2).replace('.', ',')}%`; const formatNumber = (num: number) => num.toLocaleString('es-AR'); const formatDateTime = (dateString: string | undefined | null) => { if (!dateString) return '...'; try { const date = new Date(dateString); if (isNaN(date.getTime())) { return dateString; } const day = String(date.getDate()).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0'); const year = date.getFullYear(); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); return `${day}/${month}/${year}, ${hours}:${minutes} hs.`; } catch (e) { return dateString; } }; export const HomeCarouselNacionalWidget = ({ eleccionId, categoriaId, titulo, mapLinkUrl }: Props) => { const uniqueId = `swiper-${Math.random().toString(36).substring(2, 9)}`; const prevButtonClass = `prev-${uniqueId}`; const nextButtonClass = `next-${uniqueId}`; const { data, isLoading, error } = useQuery({ queryKey: ['homeResumenNacional', eleccionId, categoriaId], queryFn: () => getHomeResumenNacional(eleccionId, categoriaId), refetchInterval: 30000, }) if (isLoading) return