refactor: Recoil durch Redux ersetzt und Fehler behoben

- Entfernt `useRecoilState(mapLayersState)` und durch `useSelector(selectMapLayersState)` ersetzt.
- Alle `setMapLayersVisibility` durch `dispatch(setLayerVisibility(...))` ersetzt.
- LocalStorage-Handling für `mapLayersVisibility` mit Redux umgesetzt.
- Fehler "setMapLayersVisibility is not defined" behoben, indem `dispatch` verwendet wurde.
- Sicherstellung, dass `mapLayersSlice` im Redux-Store registriert ist.
This commit is contained in:
Ismail Ali
2025-03-11 21:17:12 +01:00
parent 449d19a728
commit 984ce72201
8 changed files with 75 additions and 62 deletions

View File

@@ -1,24 +1,43 @@
// redux/slices/mapLayersSlice.js
import { atom } from "recoil";
import { createSlice } from "@reduxjs/toolkit";
export const mapLayersState = atom({
key: "mapLayersState", // Eindeutiger Schlüssel für das Atom
default: {
// Standardwerte für jeden Layer
TALAS: true,
ECI: true,
ULAF: true,
GSMModem: true,
CiscoRouter: true,
WAGO: true,
Siemens: true,
OTDR: true,
WDM: true,
GMA: true,
Messstellen: true,
TALASICL: true,
DAUZ: true,
SMSFunkmodem: true,
Sonstige: true,
const initialState = {
TALAS: true,
ECI: true,
ULAF: true,
GSMModem: true,
CiscoRouter: true,
WAGO: true,
Siemens: true,
OTDR: true,
WDM: true,
GMA: true,
Messstellen: true,
TALASICL: true,
DAUZ: true,
SMSFunkmodem: true,
Sonstige: true,
};
const mapLayersSlice = createSlice({
name: "mapLayers",
initialState,
reducers: {
toggleLayer: (state, action) => {
const layer = action.payload;
if (state[layer] !== undefined) {
state[layer] = !state[layer]; // Toggle Sichtbarkeit
}
},
setLayerVisibility: (state, action) => {
const { layer, visibility } = action.payload;
if (state[layer] !== undefined) {
state[layer] = visibility;
}
},
},
});
export const { toggleLayer, setLayerVisibility } = mapLayersSlice.actions;
export const selectMapLayersState = (state) => state.mapLayers || initialState;
export default mapLayersSlice.reducer;