auto-sync: 2026-05-05 16:00:01

This commit is contained in:
Stream
2026-05-05 16:00:01 +03:00
parent 15b4aace79
commit b4fac02c27

View File

@@ -249,14 +249,18 @@ function initSheetSwipe() {
sheet.classList.remove('swiping'); sheet.classList.remove('swiping');
const dy = e.changedTouches[0].clientY - startY; const dy = e.changedTouches[0].clientY - startY;
if (dy > 80) { if (dy > 80) {
// Close the sheet and deactivate mode
const sheetId = sheet.id; const sheetId = sheet.id;
closeSheet(sheetId); if (sheetId === 'sheet-route' && routeResults && routeResults.length > 0) {
// Deactivate corresponding mode minimizeSheet(sheetId);
if (sheetId === 'sheet-route' && routeMode) toggleRouteMode(); } else {
else if (sheetId === 'sheet-recon' && reconMode) toggleReconMode(); closeSheet(sheetId);
else if (sheetId === 'sheet-scenic' && scenicMode) toggleScenicMode(); // Deactivate corresponding mode
else if (sheetId === 'sheet-link' && linkMode) toggleLinkMode(); if (sheetId === 'sheet-route' && routeMode) toggleRouteMode();
else if (sheetId === 'sheet-recon' && reconMode) toggleReconMode();
else if (sheetId === 'sheet-scenic' && scenicMode) toggleScenicMode();
else if (sheetId === 'sheet-link' && linkMode) toggleLinkMode();
}
sheet.style.transform = '';
} else { } else {
sheet.style.transform = ''; sheet.style.transform = '';
} }
@@ -393,16 +397,16 @@ function getBasePath() {
// ─── Режим маршрута ──────────────────────────────────────────────── // ─── Режим маршрута ────────────────────────────────────────────────
function toggleRouteMode() { function toggleRouteMode() {
const btn = document.getElementById('tb-route'); const btn = document.getElementById('tb-route');
const sheet = document.getElementById('sheet-route');
if (routeMode) { if (routeMode) {
// Already in route input mode → exit input mode but keep route on map // X button pressed while panel open → exit mode + clear route
routeMode = false; routeMode = false;
btn.classList.remove('active'); btn.classList.remove('active');
closeSheet('sheet-route'); closeSheet('sheet-route');
clearRoute();
window._map.getCanvas().style.cursor = ''; window._map.getCanvas().style.cursor = '';
} else if (routeResults.length > 0) { } else if (routeResults.length > 0) {
// Route exists — show full panel (hide mini first) // Route exists, mini-bar visible → show full panel
hideMiniRouteSheet(); hideMiniRouteSheet();
deactivateAllModes(); deactivateAllModes();
routeMode = true; routeMode = true;
@@ -410,7 +414,7 @@ function toggleRouteMode() {
openSheet('sheet-route'); openSheet('sheet-route');
window._map.getCanvas().style.cursor = 'crosshair'; window._map.getCanvas().style.cursor = 'crosshair';
} else { } else {
// No route, not in mode → enter route input mode // No route → enter route input mode
hideMiniRouteSheet(); hideMiniRouteSheet();
deactivateAllModes(); deactivateAllModes();
routeMode = true; routeMode = true;
@@ -1613,7 +1617,6 @@ document.addEventListener('DOMContentLoaded', () => {
}); });
// ─── Mini Route Bar ────────────────────────────────────────────────── // ─── Mini Route Bar ──────────────────────────────────────────────────
const MINI_ROUTE_COLORS = ['#0066ff','#ff6600','#00aa44','#aa00ff','#ff0044'];
function showMiniRouteSheet() { function showMiniRouteSheet() {
if (!routeResults || routeResults.length === 0) return; if (!routeResults || routeResults.length === 0) return;
@@ -1632,7 +1635,7 @@ function updateMiniRouteCard() {
if (!r) return; if (!r) return;
const km = (r.distance_m / 1000).toFixed(0); const km = (r.distance_m / 1000).toFixed(0);
const dirt = r.stats?.dirt_total_pct ?? '—'; const dirt = r.stats?.dirt_total_pct ?? '—';
document.getElementById('mini-dot').style.background = MINI_ROUTE_COLORS[activeRouteIdx % MINI_ROUTE_COLORS.length]; document.getElementById('mini-dot').style.background = ROUTE_COLORS[activeRouteIdx % ROUTE_COLORS.length];
document.getElementById('mini-label').textContent = `Вариант ${activeRouteIdx + 1} из ${routeResults.length}`; document.getElementById('mini-label').textContent = `Вариант ${activeRouteIdx + 1} из ${routeResults.length}`;
document.getElementById('mini-stats').textContent = `${km} км · ${dirt}% грунт`; document.getElementById('mini-stats').textContent = `${km} км · ${dirt}% грунт`;
document.getElementById('mini-prev').style.opacity = activeRouteIdx > 0 ? '1' : '0.3'; document.getElementById('mini-prev').style.opacity = activeRouteIdx > 0 ? '1' : '0.3';
@@ -1675,7 +1678,7 @@ function initMiniRouteInteraction() {
const dx = e.changedTouches[0].clientX - startX; const dx = e.changedTouches[0].clientX - startX;
const dy = e.changedTouches[0].clientY - startY; const dy = e.changedTouches[0].clientY - startY;
if (Math.abs(dy) > Math.abs(dx)) { if (Math.abs(dy) > Math.abs(dx)) {
if (dy < -40) { hideMiniRouteSheet(); openSheet('sheet-route'); } if (dy < -40) { hideMiniRouteSheet(); openSheet('sheet-route'); selectRoute(activeRouteIdx); }
} else { } else {
if (dx < -40) selectMiniRoute(activeRouteIdx + 1); if (dx < -40) selectMiniRoute(activeRouteIdx + 1);
if (dx > 40) selectMiniRoute(activeRouteIdx - 1); if (dx > 40) selectMiniRoute(activeRouteIdx - 1);
@@ -1686,5 +1689,6 @@ function initMiniRouteInteraction() {
if (e.target.classList.contains('mini-arrow')) return; if (e.target.classList.contains('mini-arrow')) return;
hideMiniRouteSheet(); hideMiniRouteSheet();
openSheet('sheet-route'); openSheet('sheet-route');
selectRoute(activeRouteIdx);
}); });
} }