fix(map): add race-condition guards to prevent stops rendering after route is unselected
This commit is contained in:
@ -58,6 +58,12 @@ export const useFlujoPrincipal = () => {
|
|||||||
console.warn('SIBU | GPS falló o fue denegado');
|
console.warn('SIBU | GPS falló o fue denegado');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Guard contra race condition: si el usuario cerró el banner mientras cargaba
|
||||||
|
if (routeStore.selectedRouteId !== _ruta.id) {
|
||||||
|
console.log('SIBU | Carga abortada: La ruta ya no está seleccionada.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let paradas: BusStop[] = [];
|
let paradas: BusStop[] = [];
|
||||||
if (paradasRes.status === 'fulfilled') {
|
if (paradasRes.status === 'fulfilled') {
|
||||||
// Si loadRouteStops no devolviera los datos directamente, los tomamos del store
|
// Si loadRouteStops no devolviera los datos directamente, los tomamos del store
|
||||||
@ -87,6 +93,8 @@ export const useFlujoPrincipal = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ── PASO 4: Dibujar y Renderizar ──
|
// ── PASO 4: Dibujar y Renderizar ──
|
||||||
|
if (routeStore.selectedRouteId !== _ruta.id) return;
|
||||||
|
|
||||||
// Dibujar ruta completa (fondo)
|
// Dibujar ruta completa (fondo)
|
||||||
await trazarRuta(paradasFormateadas, map, true);
|
await trazarRuta(paradasFormateadas, map, true);
|
||||||
|
|
||||||
@ -99,6 +107,8 @@ export const useFlujoPrincipal = () => {
|
|||||||
|
|
||||||
await encontrarParadaCercana(ubicacion, paradas, map)
|
await encontrarParadaCercana(ubicacion, paradas, map)
|
||||||
const paradaCercanaFound = paradaCercana.value
|
const paradaCercanaFound = paradaCercana.value
|
||||||
|
|
||||||
|
if (routeStore.selectedRouteId !== _ruta.id) return;
|
||||||
if (!paradaCercanaFound) return;
|
if (!paradaCercanaFound) return;
|
||||||
|
|
||||||
// Dibujar tramo relevante
|
// Dibujar tramo relevante
|
||||||
|
|||||||
Reference in New Issue
Block a user