fix(map): add race-condition guards to prevent stops rendering after route is unselected

This commit is contained in:
2026-03-04 11:26:08 -05:00
parent 84e98b6213
commit 5ec26970bd

View File

@ -58,6 +58,12 @@ export const useFlujoPrincipal = () => {
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[] = [];
if (paradasRes.status === 'fulfilled') {
// Si loadRouteStops no devolviera los datos directamente, los tomamos del store
@ -87,6 +93,8 @@ export const useFlujoPrincipal = () => {
}
// ── PASO 4: Dibujar y Renderizar ──
if (routeStore.selectedRouteId !== _ruta.id) return;
// Dibujar ruta completa (fondo)
await trazarRuta(paradasFormateadas, map, true);
@ -99,6 +107,8 @@ export const useFlujoPrincipal = () => {
await encontrarParadaCercana(ubicacion, paradas, map)
const paradaCercanaFound = paradaCercana.value
if (routeStore.selectedRouteId !== _ruta.id) return;
if (!paradaCercanaFound) return;
// Dibujar tramo relevante