diff --git a/.env.development b/.env.development index 70812ff3e..465b883ed 100644 --- a/.env.development +++ b/.env.development @@ -24,4 +24,4 @@ NEXT_PUBLIC_USE_MOCKS=true # z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen # basePath wird jetzt in public/config.json gepflegt # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.1.335 +NEXT_PUBLIC_APP_VERSION=1.1.336 diff --git a/.env.production b/.env.production index 0199be859..914a362b0 100644 --- a/.env.production +++ b/.env.production @@ -25,4 +25,4 @@ NEXT_PUBLIC_USE_MOCKS=false # basePath wird jetzt in public/config.json gepflegt # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.1.335 +NEXT_PUBLIC_APP_VERSION=1.1.336 diff --git a/components/mainComponent/MapComponent.js b/components/mainComponent/MapComponent.js index b1ca7bb53..ef520a914 100644 --- a/components/mainComponent/MapComponent.js +++ b/components/mainComponent/MapComponent.js @@ -689,40 +689,10 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { }, [dispatch]); //-------------------------------------------- - // Beim ersten Client-Render den Wert aus localStorage laden - // Prüfe beide localStorage-Variablen (neue und alte) - useEffect(() => { - let storedPolylineVisible = localStorage.getItem("kabelstreckenVisible") === "true"; - - // Fallback auf alte Variable, falls neue nicht existiert - if (localStorage.getItem("kabelstreckenVisible") === null) { - const oldValue = localStorage.getItem("polylineVisible") === "true"; - storedPolylineVisible = oldValue; - // Migriere zur neuen Variable - localStorage.setItem("kabelstreckenVisible", oldValue.toString()); - } - - console.log( - "🔄 MapComponent: Loading polylineVisible from localStorage:", - storedPolylineVisible - ); - dispatch(setPolylineVisible(storedPolylineVisible)); - }, [dispatch]); + // Die Sichtbarkeit der Polylines wird ausschließlich über Redux gesteuert + // (Initialisierung erfolgt in MapLayersControlPanel) //-------------------------------------------- - // Event-Listener für Polyline-Sichtbarkeitsänderungen - useEffect(() => { - const handlePolylineVisibilityChange = () => { - const storedValue = localStorage.getItem("kabelstreckenVisible") === "true"; - console.log("🔄 MapComponent: Received polylineVisibilityChanged event, value:", storedValue); - dispatch(setPolylineVisible(storedValue)); - }; - - window.addEventListener("polylineVisibilityChanged", handlePolylineVisibilityChange); - - return () => { - window.removeEventListener("polylineVisibilityChanged", handlePolylineVisibilityChange); - }; - }, [dispatch]); + // MapComponent reagiert nicht mehr direkt auf localStorage-Events für polylineVisible //-------------------------------------------- useEffect(() => { if (statusStaticDistrict === "idle") { diff --git a/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.js b/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.js index 86fdb3479..e29bb9466 100644 --- a/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.js +++ b/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.js @@ -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; diff --git a/package-lock.json b/package-lock.json index 4669984ec..76fc5e71d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nodemap", - "version": "1.1.335", + "version": "1.1.336", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nodemap", - "version": "1.1.335", + "version": "1.1.336", "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", diff --git a/package.json b/package.json index 9d8f6dd98..53a28d350 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nodemap", - "version": "1.1.335", + "version": "1.1.336", "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0",