feat: Migration von selectedPoiSlice von Recoil zu Redux-Toolkit Slice

- Recoil Atom 'selectedPoiState' entfernt und durch Redux-Toolkit Slice ersetzt.
- Redux Actions hinzugefügt: setSelectedPoi, clearSelectedPoi.
- Selektor 'selectSelectedPoi' erstellt, um POI-Daten zu lesen.
- Komponenten angepasst (PoiUpdateModal, PoiUpdateModalWrapper, MapComponent), um Redux-Hooks zu verwenden.
- Reducer in rootReducer und store.js registriert.
- Funktionalität getestet und Fehlerbehebung implementiert.
This commit is contained in:
ISA
2024-12-23 11:47:28 +01:00
parent 2f39e26225
commit c2f5fa3054
5 changed files with 42 additions and 8 deletions

View File

@@ -4,12 +4,14 @@ import currentPoiReducer from "./slices/currentPoiSlice";
import gisStationsStaticDistrictReducer from "./slices/gisStationsStaticDistrictSlice";
import zoomTriggerReducer from "./slices/zoomTriggerSlice";
import urlParameterReducer from "./slices/urlParameterSlice"; // Import hinzufügen
import selectedPoiReducer from "./slices/selectedPoiSlice";
const rootReducer = combineReducers({
currentPoi: currentPoiReducer,
gisStationsStaticDistrict: gisStationsStaticDistrictReducer,
zoomTrigger: zoomTriggerReducer,
urlParameter: urlParameterReducer, // Reducer hinzufügen
urlParameter: urlParameterReducer,
selectedPoi: selectedPoiReducer,
});
export default rootReducer;

View File

@@ -1,8 +1,31 @@
// redux/slices/selectedPoiSlice.js
//Ist gedacht um ausgewählte Poi Informationen zu speichern und zu PoiUpdateModal.js zu übergeben
import { atom } from "recoil";
import { createSlice } from "@reduxjs/toolkit";
export const selectedPoiState = atom({
key: "poiState", // Einzigartiger Key (mit der gesamten Anwendung)
default: null, // Standardwert
// Initialer Zustand
const initialState = {
selectedPoi: null,
};
// Slice erstellen
const selectedPoiSlice = createSlice({
name: "selectedPoi",
initialState,
reducers: {
setSelectedPoi(state, action) {
state.selectedPoi = action.payload; // Setzt den ausgewählten POI
},
clearSelectedPoi(state) {
state.selectedPoi = null; // Löscht den ausgewählten POI
},
},
});
// Aktionen exportieren
export const { setSelectedPoi, clearSelectedPoi } = selectedPoiSlice.actions;
// Selektor exportieren
export const selectSelectedPoi = (state) => state.selectedPoi.selectedPoi;
// Reducer exportieren
export default selectedPoiSlice.reducer;