mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-04-18 01:21:19 +00:00
Fix: overlays bikerouterGravel, cyclOSMlite, mapterhornHillshade, openRailwayMap cannot be toggled in Layer settings (#329)
This commit is contained in:
committed by
GitHub
parent
54b3113480
commit
40f97b7c35
@@ -162,38 +162,26 @@ function getLayerValidator(allowed: Record<string, any>, fallback: string) {
|
|||||||
|
|
||||||
function filterLayerTree(t: LayerTreeType, allowed: LayerTreeType | undefined): LayerTreeType {
|
function filterLayerTree(t: LayerTreeType, allowed: LayerTreeType | undefined): LayerTreeType {
|
||||||
const filtered: LayerTreeType = {};
|
const filtered: LayerTreeType = {};
|
||||||
const values = Object.values(t);
|
if (!allowed) return filtered;
|
||||||
if (values.length == 0) return filtered;
|
Object.keys(allowed).forEach((key) => {
|
||||||
if (typeof values[0] === 'boolean') {
|
const allowedVal = allowed[key];
|
||||||
if (allowed) {
|
if (typeof allowedVal === 'boolean') {
|
||||||
Object.keys(allowed).forEach((key) => {
|
filtered[key] = typeof t?.[key] === 'boolean' ? t[key] : allowedVal;
|
||||||
if (Object.hasOwn(t, key)) {
|
} else {
|
||||||
filtered[key] = t[key];
|
filtered[key] = filterLayerTree(
|
||||||
} else {
|
typeof t?.[key] === 'object' ? (t[key] as LayerTreeType) : {},
|
||||||
filtered[key] = allowed[key];
|
allowedVal
|
||||||
}
|
);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
Object.entries(t).forEach(([key, value]) => {
|
});
|
||||||
if (
|
Object.entries(t ?? {}).forEach(([key, value]) => {
|
||||||
!Object.hasOwn(filtered, key) &&
|
if (
|
||||||
(key.startsWith('custom-') || key.startsWith('extension-'))
|
!Object.hasOwn(filtered, key) &&
|
||||||
) {
|
(key.startsWith('custom-') || key.startsWith('extension-'))
|
||||||
filtered[key] = value;
|
) {
|
||||||
}
|
filtered[key] = value;
|
||||||
});
|
}
|
||||||
} else {
|
});
|
||||||
Object.entries(t).forEach(([key, value]) => {
|
|
||||||
if (typeof value === 'object') {
|
|
||||||
filtered[key] = filterLayerTree(
|
|
||||||
value,
|
|
||||||
typeof allowed === 'object' && typeof allowed[key] === 'object'
|
|
||||||
? allowed[key]
|
|
||||||
: undefined
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return filtered;
|
return filtered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user