refactor: Polyline-Sichtbarkeit auf Redux umgestellt (ersetzt Recoil)

- Sichtbarkeitsstatus für Kabelstrecken/Polylines wird jetzt zentral im Redux-Store verwaltet.
- Initialer Zustand wird aus localStorage gelesen und direkt in Redux gesetzt.
- DataSheet-Checkbox steuert Redux-Status und synchronisiert mit localStorage.
- MapComponent.js verwendet Redux-State direkt zur Steuerung von setupPolylines.
- setupPolylines.js ist jetzt komplett "dumm" und bekommt den Sichtbarkeitsstatus nur noch als Parameter.
- Konsistente Lösung für Initial-Laden, Checkbox-Wechsel und Map-Neuladen umgesetzt.
This commit is contained in:
Ismail Ali
2025-03-06 19:54:29 +01:00
parent 335b88d449
commit a837291048
9 changed files with 59 additions and 184 deletions

View File

@@ -1,7 +1,22 @@
// /redux/slices/polylineLayerVisibleSlice.js
import { atom } from "recoil";
// redux/slices/polylineLayerVisibleSlice.js
import { createSlice } from "@reduxjs/toolkit";
export const polylineLayerVisibleState = atom({
key: "polylineLayerVisibleState",
default: true, // Standardmäßig auf sichtbar setzen
const initialState = {
visible: false, // oder Standardwert
};
const polylineLayerVisibleSlice = createSlice({
name: "polylineLayerVisible",
initialState,
reducers: {
setPolylineVisible: (state, action) => {
state.visible = action.payload;
localStorage.setItem("polylineVisible", action.payload);
},
},
});
export const { setPolylineVisible } = polylineLayerVisibleSlice.actions;
export const selectPolylineVisible = (state) => state.polylineLayerVisible.visible;
export default polylineLayerVisibleSlice.reducer;

View File

@@ -2,11 +2,13 @@ import { configureStore } from "@reduxjs/toolkit";
import lineVisibilityReducer from "./slices/lineVisibilitySlice";
import currentPoiReducer from "./slices/currentPoiSlice";
import gisStationsStaticDistrictReducer from "./slices/gisStationsStaticDistrictSlice";
import polylineLayerVisibleReducer from "./slices/polylineLayerVisibleSlice";
export const store = configureStore({
reducer: {
lineVisibility: lineVisibilityReducer,
currentPoi: currentPoiReducer,
gisStationsStaticDistrict: gisStationsStaticDistrictReducer,
polylineLayerVisible: polylineLayerVisibleReducer,
},
});