- 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.
44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
// redux/slices/mapLayersSlice.js
|
|
import { createSlice } from "@reduxjs/toolkit";
|
|
|
|
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;
|