Solución completa: corregir reset con la X, añadir limpieza de búsqueda y asegurar sincronización de paradas

This commit is contained in:
2026-03-02 12:55:01 -05:00
parent 0b8c5a1075
commit 9650f2b019
2 changed files with 10 additions and 2 deletions

View File

@ -74,7 +74,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed } from 'vue' import { ref, computed, watch } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
const props = defineProps<{ const props = defineProps<{
@ -91,6 +91,13 @@ defineEmits(['open', 'close', 'select-route'])
const { t } = useI18n() const { t } = useI18n()
const searchQuery = ref('') const searchQuery = ref('')
// Reset search on panel close or selection clear
watch([() => props.showPanel, () => props.selectedRouteId], ([show, routeId]) => {
if (!show || !routeId) {
searchQuery.value = ''
}
})
const filteredRoutes = computed(() => { const filteredRoutes = computed(() => {
if (!searchQuery.value.trim()) return props.allRoutes if (!searchQuery.value.trim()) return props.allRoutes
const query = searchQuery.value.toLowerCase().trim() const query = searchQuery.value.toLowerCase().trim()

View File

@ -34,7 +34,7 @@ const authStore = useAuthStore();
const { map, isLoaded, error: mapsError, initMap, addHtmlMarker, setCenter, setZoom, addMarker, addCleanMarker } = useGoogleMaps(); const { map, isLoaded, error: mapsError, initMap, addHtmlMarker, setCenter, setZoom, addMarker, addCleanMarker } = useGoogleMaps();
const { estasCargando: estasCargandoRuta, errorRuta } = useDirectionsRoute(); const { estasCargando: estasCargandoRuta, errorRuta } = useDirectionsRoute();
const { encontrarParadaCercana, paradaCercana, distanciaMetros, duracionCaminata } = useParadaCercana(); const { encontrarParadaCercana, paradaCercana, distanciaMetros, duracionCaminata, limpiarCaminata } = useParadaCercana();
const { calcularETA, busesActivos, cargando: etaCargando } = useETA(); const { calcularETA, busesActivos, cargando: etaCargando } = useETA();
const { procesarSeleccionDeRuta } = useFlujoPrincipal(); const { procesarSeleccionDeRuta } = useFlujoPrincipal();
@ -102,6 +102,7 @@ async function animateAndReload() {
// Limpiar mapa sin recargar // Limpiar mapa sin recargar
clearMapMarkers(); clearMapMarkers();
limpiarCaminata();
showETACard.value = false; showETACard.value = false;
// Recentrar en el usuario si está disponible (soft-reset) // Recentrar en el usuario si está disponible (soft-reset)