fix: map lifecycle crash, state persistence with pinia-persistedstate, and premium business details UI
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user