WIP: erster aufruf beim wechesln der Karten
This commit is contained in:
@@ -61,43 +61,39 @@ function MapLayersControlPanel() {
|
||||
}
|
||||
};
|
||||
|
||||
// Initialisiere Redux-State für Kabelstrecken-Checkbox bei Kartenwechsel (mapId/userId)
|
||||
useEffect(() => {
|
||||
// LocalStorage Werte beim ersten Laden der Komponente wiederherstellen
|
||||
// LocalStorage Werte beim ersten Laden der Komponente oder bei Kartenwechsel wiederherstellen
|
||||
const storedPoiVisible = localStorage.getItem("poiVisible");
|
||||
if (storedPoiVisible !== null) {
|
||||
setPoiVisible(storedPoiVisible === "true");
|
||||
}
|
||||
|
||||
// Neue Variable für Kabelstrecken mit Fallback auf die alte Variable
|
||||
// Kartenabhängige Sichtbarkeit für Kabelstrecken initialisieren
|
||||
const mapId = localStorage.getItem("currentMapId");
|
||||
const userId = localStorage.getItem("currentUserId");
|
||||
const mapStorageKey =
|
||||
mapId && userId ? `mapLayersVisibility_m${mapId}_u${userId}` : "mapLayersVisibility";
|
||||
|
||||
// Kabelstrecken-Checkbox initialisieren
|
||||
let storedKabelstreckenVisible = localStorage.getItem("kabelstreckenVisible");
|
||||
const storedPolylineVisible = localStorage.getItem("polylineVisible");
|
||||
|
||||
// Falls kabelstreckenVisible nicht existiert, aber polylineVisible schon, übernehmen wir den Wert
|
||||
if (storedKabelstreckenVisible === null && storedPolylineVisible !== null) {
|
||||
storedKabelstreckenVisible = storedPolylineVisible;
|
||||
localStorage.setItem("kabelstreckenVisible", storedPolylineVisible);
|
||||
}
|
||||
|
||||
if (storedKabelstreckenVisible !== null) {
|
||||
const shouldBeVisible = storedKabelstreckenVisible === "true";
|
||||
setKabelstreckenVisible(shouldBeVisible);
|
||||
// Beide localStorage-Variablen synchronisieren
|
||||
localStorage.setItem("polylineVisible", shouldBeVisible.toString());
|
||||
// Redux für Konsistenz setzen
|
||||
dispatch(setPolylineVisible(shouldBeVisible));
|
||||
// Event auslösen nach dem Laden
|
||||
setTimeout(() => {
|
||||
const event = new Event("polylineVisibilityChanged");
|
||||
window.dispatchEvent(event);
|
||||
}, 200);
|
||||
}
|
||||
|
||||
// Kartenspezifischer localStorage-Key verwenden
|
||||
const mapId = localStorage.getItem("currentMapId");
|
||||
const userId = localStorage.getItem("currentUserId");
|
||||
const mapStorageKey =
|
||||
mapId && userId ? `mapLayersVisibility_m${mapId}_u${userId}` : "mapLayersVisibility";
|
||||
|
||||
// mapLayersVisibility initialisieren
|
||||
const storedMapLayersVisibility = localStorage.getItem(mapStorageKey);
|
||||
if (storedMapLayersVisibility) {
|
||||
const parsedVisibility = JSON.parse(storedMapLayersVisibility);
|
||||
@@ -105,7 +101,6 @@ function MapLayersControlPanel() {
|
||||
dispatch(setLayerVisibility({ layer: key, visibility: parsedVisibility[key] }));
|
||||
});
|
||||
} else {
|
||||
// Initialisiere mapLayersVisibility basierend auf Allow & Map (nur Systeme mit Map===1 anzeigen)
|
||||
if (Array.isArray(GisSystemStatic)) {
|
||||
const initialVisibility = {};
|
||||
GisSystemStatic.forEach(system => {
|
||||
@@ -124,7 +119,7 @@ function MapLayersControlPanel() {
|
||||
setEditMode(storedEditMode === "true");
|
||||
|
||||
setLocalStorageLoaded(true);
|
||||
}, []); // Läuft nur beim Mount
|
||||
}, [localStorage.getItem("currentMapId"), localStorage.getItem("currentUserId")]);
|
||||
|
||||
const handleAreaChange = event => {
|
||||
const selectedIndex = event.target.options.selectedIndex;
|
||||
|
||||
Reference in New Issue
Block a user