fix custom controls mounting

This commit is contained in:
vcoppe
2024-07-08 16:21:19 +02:00
parent 5ed0e75427
commit 83cd3fd987
2 changed files with 9 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { onMount } from 'svelte';
import { onDestroy, onMount } from 'svelte';
import mapboxgl from 'mapbox-gl';
import 'mapbox-gl/dist/mapbox-gl.css';
@@ -115,6 +115,13 @@
});
});
onDestroy(() => {
if ($map) {
$map.remove();
$map = null;
}
});
$: if (
$map &&
(!$verticalFileView || !$elevationProfile || $bottomPanelSize || $rightPanelSize)

View File

@@ -1,32 +1,17 @@
<script lang="ts" context="module">
import { writable } from 'svelte/store';
let currentId = 0;
function getId() {
return currentId++;
}
let lastInitializedId = writable(-1);
</script>
<script lang="ts">
import CustomControl from './CustomControl';
import { map } from '$lib/stores';
export let position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' = 'top-right';
let container: HTMLDivElement | null = null;
let id = getId();
$: if ($map && container && $lastInitializedId + 1 === id) {
$: if ($map && container) {
if (position.includes('right')) container.classList.add('float-right');
else container.classList.add('float-left');
container.classList.remove('hidden');
let control = new CustomControl(container);
$map.addControl(control, position);
lastInitializedId.set(id);
}
</script>