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:
@ -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()
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user