Feature: add user preference to remember disabling/enabling layers; see #2442

This commit is contained in:
Pieter Vander Vennet 2025-06-20 01:40:43 +02:00
parent 721e8e89c3
commit 87583586d5
3 changed files with 62 additions and 42 deletions

View file

@ -74,7 +74,6 @@ export default class FilteredLayer {
public static queryParameterKey(layer: LayerConfig) {
return "layer-" + layer.id
}
/**
* Creates a FilteredLayer which is tied into the QueryParameters and/or user preferences
*/
@ -85,18 +84,22 @@ export default class FilteredLayer {
enabledByDefault?: Store<boolean>
) {
let isDisplayed: UIEventSource<boolean>
if (layer.syncSelection === "local") {
let syncSelection: string = layer.syncSelection
const userpreference: "default" | "no" | "local" | "theme-only" | "global" | string = osmConnection.getPreference("layer-override-sync-selection").data
console.log("Userpreference is", userpreference)
syncSelection = userpreference ?? syncSelection
if (syncSelection === "local") {
isDisplayed = LocalStorageSource.getParsed(
context + "-layer-" + layer.id + "-enabled",
layer.shownByDefault
)
} else if (layer.syncSelection === "theme-only" && osmConnection) {
} else if (syncSelection === "theme-only" && osmConnection) {
isDisplayed = FilteredLayer.getPref(
osmConnection,
context + "-layer-" + layer.id + "-enabled",
layer
)
} else if (layer.syncSelection === "global" && osmConnection) {
} else if (syncSelection === "global" && osmConnection) {
isDisplayed = FilteredLayer.getPref(
osmConnection,
"layer-" + layer.id + "-enabled",