diff --git a/web/src/lib/vendor/maplibre-layer-manager/maplibre-layer-manager.ts b/web/src/lib/vendor/maplibre-layer-manager/maplibre-layer-manager.ts index e1b61421..060f5f9c 100644 --- a/web/src/lib/vendor/maplibre-layer-manager/maplibre-layer-manager.ts +++ b/web/src/lib/vendor/maplibre-layer-manager/maplibre-layer-manager.ts @@ -125,9 +125,14 @@ export class LayerManager { this.map.on('mouseleave', id, listener.onLeave); } - if (listener.onMouseDown && !this.addedListeners.has("click-" + id)) { - this.addedListeners.add("click-" + id) - this.map.on('click', id, listener.onMouseDown); + if (listener.onMouseDown && !this.addedListeners.has("mousedown-" + id)) { + this.addedListeners.add("mousedown-" + id) + this.map.on('mousedown', id, listener.onMouseDown); + } + + if (listener.onMouseUp && !this.addedListeners.has("mouseup-" + id)) { + this.addedListeners.add("mouseup-" + id) + this.map.on('mouseup', id, listener.onMouseUp); } if (listener.onMouseMove && !this.addedListeners.has("mousemove-" + id)) { @@ -188,7 +193,7 @@ export class LayerManager { } private restoreLayers() { - for (const [id, layer] of Object.entries(this.layers)) { + for (const [id, layer] of Object.entries(this.layers)) { this.addLayer(id, layer) } } diff --git a/web/src/lib/vendor/maplibre-layer-manager/overpass-layer.ts b/web/src/lib/vendor/maplibre-layer-manager/overpass-layer.ts index 2eeab4ac..0141d3e3 100644 --- a/web/src/lib/vendor/maplibre-layer-manager/overpass-layer.ts +++ b/web/src/lib/vendor/maplibre-layer-manager/overpass-layer.ts @@ -1,3 +1,9 @@ +/** + * Component adapted from: https://github.com/gpxstudio/gpx.studio/blob/main/website/src/lib/components/layer-control/OverpassLayer.ts + * Original author: @vcoppe + * License: MIT + */ + import { createOverpassPopup } from "$lib/util/maplibre_util"; import * as M from "maplibre-gl"; import { type LngLatBounds, type MapMouseEvent, type StyleSpecification } from "maplibre-gl"; diff --git a/web/src/lib/vendor/maplibre-layer-manager/trail-layer.ts b/web/src/lib/vendor/maplibre-layer-manager/trail-layer.ts index aebbb72a..28dc5961 100644 --- a/web/src/lib/vendor/maplibre-layer-manager/trail-layer.ts +++ b/web/src/lib/vendor/maplibre-layer-manager/trail-layer.ts @@ -29,6 +29,6 @@ export class TrailLayer implements BaseLayer { }; - this.listeners = { id: listerners ?? {} } + this.listeners = { [id]: listerners ?? {} } } } \ No newline at end of file diff --git a/web/src/routes/trail/edit/[id]/+page.svelte b/web/src/routes/trail/edit/[id]/+page.svelte index 7f1a3625..a54bca2c 100644 --- a/web/src/routes/trail/edit/[id]/+page.svelte +++ b/web/src/routes/trail/edit/[id]/+page.svelte @@ -811,9 +811,7 @@ if (previousRouteSegment) { editRoute(anchorIndex - 1, previousRouteSegment); } - if ($formData.expand?.gpx_data) { - updateTrailWithRouteData(); - } + updateTrailWithRouteData(); normalizeRouteTime(); } catch (e) { console.error(e); @@ -1044,10 +1042,10 @@ overwriteGPX = true; updateTotals(valhallaStore.route); - updateTrailOnMap(); if (!$formData.id) { $formData.id = cryptoRandomString({ length: 15 }); } + updateTrailOnMap(); } function updateTotals(gpx: GPX) { @@ -1061,7 +1059,7 @@ }); } - function updateTrailOnMap() { + function updateTrailOnMap() { const t: Trail = JSON.parse(JSON.stringify($formData)); t.expand!.gpx = valhallaStore.route; mapTrail = [t];