fix(map): evitar dibujado residual de marcadores cuando se limpia el mapa rápidamente
This commit is contained in:
@ -3,6 +3,7 @@ import { useMapState } from './useMapState'
|
|||||||
import { useDirectionsRoute } from './useDirectionsRoute'
|
import { useDirectionsRoute } from './useDirectionsRoute'
|
||||||
import { useParadaCercana } from './useParadaCercana'
|
import { useParadaCercana } from './useParadaCercana'
|
||||||
import type { BusStop } from '@/types'
|
import type { BusStop } from '@/types'
|
||||||
|
import { useRouteStore } from '@/stores/route'
|
||||||
|
|
||||||
export const useFlujoPrincipal = () => {
|
export const useFlujoPrincipal = () => {
|
||||||
const { limpiarMapa, registrarMarker } = useMapState()
|
const { limpiarMapa, registrarMarker } = useMapState()
|
||||||
@ -80,6 +81,12 @@ export const useFlujoPrincipal = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const routeStore = useRouteStore()
|
||||||
|
if (routeStore.selectedRouteId !== _ruta.id) {
|
||||||
|
console.log('Abortando flujo: el mapa fue limpiado o cambió de ruta.')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// ── PASO 5: Dibujar tramo relevante (azul vivo) ───────
|
// ── PASO 5: Dibujar tramo relevante (azul vivo) ───────
|
||||||
const idx = paradasFormateadas.findIndex(p => p.longitud === paradaCercanaFound.longitude && p.latitud === paradaCercanaFound.latitude)
|
const idx = paradasFormateadas.findIndex(p => p.longitud === paradaCercanaFound.longitude && p.latitud === paradaCercanaFound.latitude)
|
||||||
if (idx !== -1) {
|
if (idx !== -1) {
|
||||||
|
|||||||
@ -439,6 +439,12 @@ async function updateMapMarkers() {
|
|||||||
// Llamar al procesador de flujo principal, lo cual limpia el mapa y centra.
|
// Llamar al procesador de flujo principal, lo cual limpia el mapa y centra.
|
||||||
await procesarSeleccionDeRuta(selectedRouteObj, stops as BusStop[], map.value);
|
await procesarSeleccionDeRuta(selectedRouteObj, stops as BusStop[], map.value);
|
||||||
|
|
||||||
|
// ⛔ ABORTAR SI EL USUARIO LIMPIÓ EL MAPA MIENTRAS DIBUJÁBAMOS
|
||||||
|
if (routeStore.selectedRouteId !== currentRequestRouteId) {
|
||||||
|
console.log('Abortando dibujado de paradas (la ruta fue limpiada o cambiada)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Agregar todos los stops como marcadores 'normales' para que se vean en el mapa
|
// Agregar todos los stops como marcadores 'normales' para que se vean en el mapa
|
||||||
const { paradaCercana } = useParadaCercana();
|
const { paradaCercana } = useParadaCercana();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user