mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-12-02 10:02:12 +00:00
remove active layers when removed from selection
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
import { map } from '$lib/components/map/map';
|
import { map } from '$lib/components/map/map';
|
||||||
import CustomLayers from './CustomLayers.svelte';
|
import CustomLayers from './CustomLayers.svelte';
|
||||||
import { settings } from '$lib/logic/settings';
|
import { settings } from '$lib/logic/settings';
|
||||||
|
import { untrack } from 'svelte';
|
||||||
|
|
||||||
const {
|
const {
|
||||||
selectedBasemapTree,
|
selectedBasemapTree,
|
||||||
@@ -26,6 +27,7 @@
|
|||||||
selectedOverpassTree,
|
selectedOverpassTree,
|
||||||
currentBasemap,
|
currentBasemap,
|
||||||
currentOverlays,
|
currentOverlays,
|
||||||
|
currentOverpassQueries,
|
||||||
customLayers,
|
customLayers,
|
||||||
opacities,
|
opacities,
|
||||||
} = settings;
|
} = settings;
|
||||||
@@ -60,19 +62,44 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
if ($selectedOverlayTree && $currentOverlays) {
|
if ($selectedOverlayTree) {
|
||||||
let overlayLayers = getLayers($currentOverlays);
|
untrack(() => {
|
||||||
let toRemove = Object.entries(overlayLayers).filter(
|
if ($currentOverlays) {
|
||||||
([id, checked]) => checked && !isSelected($selectedOverlayTree, id)
|
let overlayLayers = getLayers($currentOverlays);
|
||||||
);
|
let toRemove = Object.entries(overlayLayers).filter(
|
||||||
if (toRemove.length > 0) {
|
([id, checked]) => checked && !isSelected($selectedOverlayTree, id)
|
||||||
currentOverlays.update((tree) => {
|
);
|
||||||
toRemove.forEach(([id]) => {
|
if (toRemove.length > 0) {
|
||||||
toggle(tree, id);
|
currentOverlays.update((tree) => {
|
||||||
});
|
toRemove.forEach(([id]) => {
|
||||||
return tree;
|
toggle(tree, id);
|
||||||
});
|
});
|
||||||
}
|
return tree;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
|
if ($selectedOverpassTree) {
|
||||||
|
untrack(() => {
|
||||||
|
if ($currentOverpassQueries) {
|
||||||
|
let overlayLayers = getLayers($currentOverpassQueries);
|
||||||
|
let toRemove = Object.entries(overlayLayers).filter(
|
||||||
|
([id, checked]) => checked && !isSelected($selectedOverpassTree, id)
|
||||||
|
);
|
||||||
|
if (toRemove.length > 0) {
|
||||||
|
currentOverpassQueries.update((tree) => {
|
||||||
|
toRemove.forEach(([id]) => {
|
||||||
|
toggle(tree, id);
|
||||||
|
});
|
||||||
|
return tree;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user