// public/js/activityModal.js let activityMap = null; function closeActivityModal() { const modal = document.getElementById("activityModal"); const container = document.getElementById("activityModalContent"); if (activityMap) { activityMap.remove(); activityMap = null; } if (container) { container.innerHTML = ""; } if (modal) { modal.classList.remove("open"); modal.setAttribute("aria-hidden", "true"); } window.currentActivity = null; if (typeof window.closeInfoPanel === "function") { window.closeInfoPanel(); } document.body.style.overflow = ""; } window.openActivityModal = async function(item, list = [], index = 0) { window.closeBottomSheet?.(); const modal = document.getElementById("activityModal"); const container = document.getElementById("activityModalContent"); if (!modal || !container) { console.error("[activity modal] Mancano activityModal o activityModalContent"); return; } if (!item) return; let points = []; try { if (typeof window.getActivityRoutePoints === "function") { points = await window.getActivityRoutePoints(item); } else if (typeof getActivityRoutePoints === "function") { points = await getActivityRoutePoints(item); } } catch (error) { console.error("[activity modal] Errore traccia:", error); } if (activityMap) { activityMap.remove(); activityMap = null; } window.currentActivity = item; window.activityModalList = Array.isArray(list) ? list : []; window.activityModalIndex = Number.isInteger(index) ? index : 0; const title = item.display_name || item.route_name || item.title || item.file_name || item.name || "Attività"; const distance = Number(item.distance_meters); const duration = Number(item.duration_millis); const elevation = Number(item.elevation_gain_meters); container.innerHTML = `