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

@@ -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 # 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 # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.335 NEXT_PUBLIC_APP_VERSION=1.1.336

View File

@@ -25,4 +25,4 @@ NEXT_PUBLIC_USE_MOCKS=false
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.335 NEXT_PUBLIC_APP_VERSION=1.1.336

View File

@@ -689,40 +689,10 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
}, [dispatch]); }, [dispatch]);
//-------------------------------------------- //--------------------------------------------
// Beim ersten Client-Render den Wert aus localStorage laden // Die Sichtbarkeit der Polylines wird ausschließlich über Redux gesteuert
// Prüfe beide localStorage-Variablen (neue und alte) // (Initialisierung erfolgt in MapLayersControlPanel)
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]);
//-------------------------------------------- //--------------------------------------------
// Event-Listener für Polyline-Sichtbarkeitsänderungen // MapComponent reagiert nicht mehr direkt auf localStorage-Events für polylineVisible
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]);
//-------------------------------------------- //--------------------------------------------
useEffect(() => { useEffect(() => {
if (statusStaticDistrict === "idle") { if (statusStaticDistrict === "idle") {

View File

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

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.335", "version": "1.1.336",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "nodemap", "name": "nodemap",
"version": "1.1.335", "version": "1.1.336",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.335", "version": "1.1.336",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",