fix: map lifecycle crash, state persistence with pinia-persistedstate, and premium business details UI

This commit is contained in:
2026-03-03 13:21:09 -05:00
parent cdde701f9f
commit cfe9286fcb
13 changed files with 569 additions and 329 deletions

View File

@ -100,7 +100,7 @@ async function animateAndReload() {
isBannerClosing.value = true;
// 🔥 CRÍTICO
routeStore.wasSelectedFromMap = false;
routeStore.setWasSelectedFromMap(false);
clearMapMarkers();
limpiarCaminata();
@ -160,14 +160,26 @@ onMounted(async () => {
unitFetchInterval.value = setInterval(updateActiveUnits, 15000);
updateActiveUnits();
startCarousel();
// 🛰️ RESIZE FIX: Trigger map resize when app becomes visible again
document.addEventListener('visibilitychange', handleVisibilityChange);
});
onUnmounted(() => {
if (unitFetchInterval.value) clearInterval(unitFetchInterval.value);
if (carouselTimer.value) clearInterval(carouselTimer.value);
document.removeEventListener('visibilitychange', handleVisibilityChange);
// NOTA: No llamamos a clearMapMarkers() para mantener la ruta si el usuario vuelve
});
function handleVisibilityChange() {
if (document.visibilityState === 'visible' && map.value) {
console.log('SIBU | App visible, redimensionando mapa...');
google.maps.event.trigger(map.value, 'resize');
updateActiveUnits();
}
}
async function initializeMap() {
await nextTick();
await new Promise(resolve => setTimeout(resolve, 100));
@ -330,7 +342,7 @@ function selectRouteAndClose(route: any) {
}
showUberSearch.value = false;
routeStore.wasSelectedFromMap = true;
routeStore.setWasSelectedFromMap(true);
routeStore.selectRoute(route.id, route.name);
}