WIP: erster aufruf beim wechesln der Karten

This commit is contained in:
ISA
2025-08-21 11:06:27 +02:00
parent da21cba186
commit f11f64d4d7
6 changed files with 19 additions and 54 deletions

View File

@@ -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;