diff --git a/frontend/src/components/map/ArrivalBanner.vue b/frontend/src/components/map/ArrivalBanner.vue
index 4dce60f..017c615 100644
--- a/frontend/src/components/map/ArrivalBanner.vue
+++ b/frontend/src/components/map/ArrivalBanner.vue
@@ -3,6 +3,7 @@
directions_bus
@@ -45,7 +46,7 @@ const props = defineProps<{
etaValue: number | string
}>()
-defineEmits(['close'])
+defineEmits(['close', 'click'])
const { t } = useI18n()
diff --git a/frontend/src/views/MapView.vue b/frontend/src/views/MapView.vue
index 61b9bfd..401f1bb 100644
--- a/frontend/src/views/MapView.vue
+++ b/frontend/src/views/MapView.vue
@@ -102,6 +102,7 @@ async function animateAndReload() {
// Limpiar mapa sin recargar
clearMapMarkers();
+ showETACard.value = false;
// Recentrar en el usuario si está disponible (soft-reset)
if (userCoords.value) {
@@ -410,6 +411,14 @@ watch([etaCargando, () => busesActivos.value.length], ([loading, count]) => {
});
*/
+function handleBannerClick() {
+ showETACard.value = true;
+ // Desaparecer las paradas:
+ routeStore.clearSelection();
+ router.replace({ query: {} });
+ clearMapMarkers();
+}
+
// Watch for route selection changes
watch(() => routeStore.selectedRouteId, (routeId) => {
if (routeId) {
@@ -423,7 +432,7 @@ watch(() => routeStore.selectedRouteId, (routeId) => {
}
} else {
clearMapMarkers();
- showETACard.value = false;
+ // showETACard.value = false; // REVERTED: Mantener ETACard abierta aunque se limpie el mapa (petición de usuario)
}
});
@@ -511,7 +520,7 @@ watch([() => authStore.userProfile?.auto_location, isLoaded], ([canLocate, loade
:has-active-buses="busesActivos.length > 0"
:eta-value="busesActivos[0]?.etaMinutos ?? 0"
@close="animateAndReload"
- @click="showETACard = true"
+ @click="handleBannerClick"
/>