Feat Mapa Tipo Modal

This commit is contained in:
2025-10-27 15:01:07 -03:00
parent 3a43c4a74a
commit 1682d776a0
7 changed files with 221 additions and 38 deletions

View File

@@ -18,7 +18,6 @@ interface Props {
eleccionId: number;
categoriaId: number;
titulo: string;
mapLinkUrl: string;
}
const formatPercent = (num: number | null | undefined) => `${(num || 0).toFixed(2).replace('.', ',')}%`;
@@ -41,7 +40,7 @@ const formatDateTime = (dateString: string | undefined | null) => {
}
};
export const HomeCarouselNacionalWidget = ({ eleccionId, categoriaId, titulo, mapLinkUrl }: Props) => {
export const HomeCarouselNacionalWidget = ({ eleccionId, categoriaId, titulo }: Props) => {
const uniqueId = `swiper-${Math.random().toString(36).substring(2, 9)}`;
const prevButtonClass = `prev-${uniqueId}`;
const nextButtonClass = `next-${uniqueId}`;
@@ -55,14 +54,22 @@ export const HomeCarouselNacionalWidget = ({ eleccionId, categoriaId, titulo, ma
if (isLoading) return <div>Cargando widget...</div>;
if (error || !data) return <div>No se pudieron cargar los datos.</div>;
const handleOpenMap = () => {
(window as any).EleccionesWidgets.openModal('panel-nacional', {
eleccionId: eleccionId.toString(),
// No pasamos ámbito para que muestre la vista país por defecto
categoriaId: categoriaId.toString()
});
};
return (
<div className={styles.homeCarouselWidget}>
<div className={`${styles.widgetHeader} ${styles.headerSingleLine}`}>
<h2 className={styles.widgetTitle}>{titulo}</h2>
<a href={mapLinkUrl} className={`${styles.mapLinkButton} noAjax`}>
<button onClick={handleOpenMap} className={`${styles.mapLinkButton} noAjax`}>
<TfiMapAlt />
<span className={styles.buttonText}>Ver Mapa</span>
</a>
</button>
</div>
<div className={styles.carouselContainer}>