diff --git a/CHANGELOG.md b/CHANGELOG.md index 24374e0aa..6a472fab2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,31 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie --- +[1.1.176] – 2025-05-26 +🐞 Fixed +Problem behoben, dass das Modal „POI hinzufügen“ nach erfolgreichem Submit nicht geschlossen wurde und die Meldung „Wird hinzugefügt…“ dauerhaft sichtbar blieb. + +Ursache: Die Service-Datei addPoiService.js verwendete die falsche URL /addLocation statt /addPoi. + +Die unwrap()-Verwendung im AddPOIModal.js wurde beibehalten und korrekt abgeschlossen. + +✅ Clean +resetAddPoiStatus() wird jetzt direkt nach onClose() dispatcht, um Status in Redux auf idle zurückzusetzen. + +Ladeindikator „Wird hinzugefügt...“ wird zuverlässig entfernt. + +Fehleranzeige funktioniert weiterhin über Redux (status === "failed" und error). + +🧠 Architektur +Vollständige Redux-Anbindung des Modals über addPoiSlice, addPoiThunk, addPoiService und addPoi.js. + +Thunk-Erfolg löst incrementTrigger() aus und synchronisiert die Marker auf der Karte durch erneutes Laden via fetchPoiMarkersThunk(). + +🔧 Version +📦 Version erhöht auf 1.1.176 + +--- + [1.1.174] – 2025-05-26 ♻️ Refactor useDrawLines.js vollständig auf Redux umgestellt: diff --git a/README.md b/README.md index 6fd9d3c24..a7170d2c3 100644 --- a/README.md +++ b/README.md @@ -116,13 +116,24 @@ redux/ → globale Zustände (Slices) 📦redux ┣ 📂slices ┃ ┣ 📂database - ┃ ┃ ┣ 📜addPoiSlice.js - ┃ ┃ ┣ 📜gisLinesSlice.js + ┃ ┃ ┣ 📂pois + ┃ ┃ ┃ ┣ 📜addPoiOnPolylineSlice.js + ┃ ┃ ┃ ┣ 📜addPoiSlice.js + ┃ ┃ ┃ ┣ 📜currentPoiSlice.js + ┃ ┃ ┃ ┣ 📜poiIconsDataSlice.js + ┃ ┃ ┃ ┣ 📜poiLayerVisibleSlice.js + ┃ ┃ ┃ ┣ 📜poiReadFromDbTriggerSlice.js + ┃ ┃ ┃ ┣ 📜poiTypesSlice.js + ┃ ┃ ┃ ┣ 📜poiTypSlice.js + ┃ ┃ ┃ ┣ 📜readPoiMarkersStoreSlice.js + ┃ ┃ ┃ ┗ 📜selectedPoiSlice.js + ┃ ┃ ┣ 📂polylines + ┃ ┃ ┃ ┣ 📜gisLinesSlice.js + ┃ ┃ ┃ ┣ 📜polylineContextMenuSlice.js + ┃ ┃ ┃ ┣ 📜polylineEventsDisabledSlice.js + ┃ ┃ ┃ ┗ 📜polylineLayerVisibleSlice.js ┃ ┃ ┣ 📜locationDevicesFromDBSlice.js ┃ ┃ ┣ 📜locationDevicesSlice.js - ┃ ┃ ┣ 📜poiIconsDataSlice.js - ┃ ┃ ┣ 📜poiTypesSlice.js - ┃ ┃ ┣ 📜poiTypSlice.js ┃ ┃ ┗ 📜priorityConfigSlice.js ┃ ┣ 📂webservice ┃ ┃ ┣ 📜gisLinesStatusSlice.js @@ -131,29 +142,25 @@ redux/ → globale Zustände (Slices) ┃ ┃ ┣ 📜gisStationsStatusDistrictSlice.js ┃ ┃ ┣ 📜gisSystemStaticSlice.js ┃ ┃ ┗ 📜userRightsSlice.js - ┃ ┣ 📜addPoiOnPolylineSlice.js - ┃ ┣ 📜currentPoiSlice.js ┃ ┣ 📜lineVisibilitySlice.js ┃ ┣ 📜mapLayersSlice.js - ┃ ┣ 📜poiLayerVisibleSlice.js - ┃ ┣ 📜poiReadFromDbTriggerSlice.js - ┃ ┣ 📜polylineContextMenuSlice.js - ┃ ┣ 📜polylineEventsDisabledSlice.js - ┃ ┣ 📜polylineLayerVisibleSlice.js - ┃ ┣ 📜readPoiMarkersStoreSlice.js ┃ ┣ 📜selectedAreaSlice.js ┃ ┣ 📜selectedDeviceSlice.js - ┃ ┣ 📜selectedPoiSlice.js ┃ ┣ 📜urlParameterSlice.js ┃ ┗ 📜zoomTriggerSlice.js ┣ 📂thunks ┃ ┣ 📂database - ┃ ┃ ┣ 📜addPoiThunk.js - ┃ ┃ ┣ 📜fetchGisLinesThunk.js + ┃ ┃ ┣ 📂pois + ┃ ┃ ┃ ┣ 📜addPoiThunk.js + ┃ ┃ ┃ ┣ 📜deletePoiThunk.js + ┃ ┃ ┃ ┣ 📜fetchPoiIconsDataThunk.js + ┃ ┃ ┃ ┣ 📜fetchPoiTypThunk.js + ┃ ┃ ┃ ┗ 📜updatePoiThunk.js + ┃ ┃ ┣ 📂polylines + ┃ ┃ ┃ ┗ 📜fetchGisLinesThunk.js ┃ ┃ ┣ 📜fetchLocationDevicesThunk.js - ┃ ┃ ┣ 📜fetchPoiIconsDataThunk.js - ┃ ┃ ┣ 📜fetchPoiTypThunk.js - ┃ ┃ ┗ 📜fetchPriorityConfigThunk.js + ┃ ┃ ┣ 📜fetchPriorityConfigThunk.js + ┃ ┃ ┗ 📜getDeviceIdByNameThunk.js ┃ ┗ 📂webservice ┃ ┃ ┣ 📜fetchGisLinesStatusThunk.js ┃ ┃ ┣ 📜fetchGisStationsMeasurementsThunk.js @@ -166,15 +173,20 @@ redux/ → globale Zustände (Slices) services/ → API-Kommunikation, Mock-Logik 📦services ┣ 📂database - ┃ ┣ 📜addPoiService.js + ┃ ┣ 📂pois + ┃ ┃ ┣ 📜addPoiService.js + ┃ ┃ ┣ 📜deletePoiService.js + ┃ ┃ ┣ 📜fetchPoiDataByIdService.js + ┃ ┃ ┣ 📜fetchPoiDataService.js + ┃ ┃ ┣ 📜fetchPoiIconsDataService.js + ┃ ┃ ┣ 📜fetchPoiTypService.js + ┃ ┃ ┗ 📜updatePoiService.js + ┃ ┣ 📂polylines + ┃ ┃ ┗ 📜fetchGisLinesService.js ┃ ┣ 📜fetchDeviceNameByIdService.js - ┃ ┣ 📜fetchGisLinesService.js ┃ ┣ 📜fetchLocationDevicesService.js - ┃ ┣ 📜fetchPoiDataByIdService.js - ┃ ┣ 📜fetchPoiDataService.js - ┃ ┣ 📜fetchPoiIconsDataService.js - ┃ ┣ 📜fetchPoiTypService.js ┃ ┣ 📜fetchPriorityConfigService.js + ┃ ┣ 📜getDeviceIdByNameService.js ┃ ┗ 📜updateLocationInDatabaseService.js ┣ 📂utils ┃ ┗ 📜fetchWithTimeout.js diff --git a/components/pois/AddPOIModal.js b/components/pois/AddPOIModal.js index c75bc78be..a21f9f52e 100644 --- a/components/pois/AddPOIModal.js +++ b/components/pois/AddPOIModal.js @@ -5,6 +5,7 @@ import { selectGisStationsStaticDistrict } from "../../redux/slices/webservice/g import { fetchPoiTypes } from "../../redux/slices/database/pois/poiTypesSlice"; import { incrementTrigger } from "../../redux/slices/database/pois/poiReadFromDbTriggerSlice"; import { addPoiThunk } from "../../redux/thunks/database/pois/addPoiThunk"; +import { resetAddPoiStatus } from "../../redux/slices/database/pois/addPoiSlice"; import { fetchPoiIconsDataThunk } from "../../redux/thunks/database/pois/fetchPoiIconsDataThunk"; const AddPOIModal = ({ onClose, map, latlng }) => { @@ -54,9 +55,10 @@ const AddPOIModal = ({ onClose, map, latlng }) => { try { await dispatch(addPoiThunk(formData)).unwrap(); dispatch(incrementTrigger()); + dispatch(resetAddPoiStatus()); // ✅ Status zurücksetzen onClose(); - // Icons im Hintergrund nachladen (nicht blockierend) + // Icons im Hintergrund nachladen setTimeout(() => { dispatch(fetchPoiIconsDataThunk()); }, 100); @@ -123,7 +125,7 @@ const AddPOIModal = ({ onClose, map, latlng }) => { {status === "loading" &&
Wird hinzugefügt...
} - {status === "failed" && error &&
Fehler: {error}
} + {status === "failed" && error &&
❌ Fehler: {error}
}