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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user