diff --git a/CHANGELOG.md b/CHANGELOG.md index e9b53f134..8e848631a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,24 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie --- +## [1.1.130] – 2025-05-21 + +### Changed + +- 🔁 GIS-Linien in `MapComponent.js` vollständig von `fetch(...)` auf Redux-Architektur umgestellt + - Neuer Service: `fetchGisLinesService.js` für API-Aufruf + - Neuer Thunk: `fetchGisLinesThunk.js` unter `/redux/thunks/database/` + - Neuer Slice: `gisLinesSlice.js` mit Statusverwaltung (idle/loading/succeeded/failed) + - Redux-Selektor `selectGisLines` in `MapComponent.js` genutzt +- Direkter `fetch("/api/talas_v5_DB/gisLines/readGisLines")` entfernt und durch `dispatch(fetchGisLinesThunk())` ersetzt +- Alle Linien-Daten werden nun zentral über Redux geladen und in `linePositions` umgewandelt + +### Version + +- 📦 Version erhöht auf **1.1.130** + +--- + ## [1.1.128] – 2025-05-21 ### Changed diff --git a/components/mainComponent/MapComponent.js b/components/mainComponent/MapComponent.js index e16a6f426..9ac733b81 100644 --- a/components/mainComponent/MapComponent.js +++ b/components/mainComponent/MapComponent.js @@ -87,7 +87,9 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const polylineEventsDisabled = useSelector((state) => state.polylineEventsDisabled.disabled); const mapLayersVisibility = useSelector(selectMapLayersState) || {}; const selectedArea = useSelector((state) => state.selectedArea.area); - const linesData = useSelector(selectGisLines); + const linesData = useSelector((state) => state.gisLines.data); + const gisLinesStatus = useSelector((state) => state.gisLines.status); + //------------------------------- const { deviceName, setDeviceName } = useMapComponentState(); const [locationDeviceData, setLocationDeviceData] = useState([]); @@ -222,34 +224,22 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { }, [dispatch]); //-------------------------------------------------------- useEffect(() => { - const endpoint = "/api/talas_v5_DB/gisLines/readGisLines"; - - fetch(endpoint) - .then((response) => response.json()) - .then((data) => { - if (data.message) { - console.warn(data.message); - return; // Falls die Tabelle nicht existiert, keine weitere Verarbeitung - } - - const newLinePositions = data.map((item) => { - if (item.points && Array.isArray(item.points)) { - return { - coordinates: item.points.map((point) => [point.x, point.y]), - idModul: item.idModul, - idLD: item.idLD, - }; - } - throw new Error("Points missing or not an array"); - }); - - setLinePositions(newLinePositions); - }) - .catch((error) => { - console.error("Error fetching data:", error.message); - }); - }, []); + if (gisLinesStatus === "idle") { + dispatch(fetchGisLinesThunk()); + } + }, [gisLinesStatus, dispatch]); + //-------------------------------------------------------- + useEffect(() => { + if (linesData && Array.isArray(linesData)) { + const transformed = linesData.map((item) => ({ + coordinates: item.points.map((point) => [point.x, point.y]), + idModul: item.idModul, + idLD: item.idLD, + })); + setLinePositions(transformed); + } + }, [linesData]); //-------------------------------------------- const [poiData, setPoiData] = useState([]); // POIs Popup Informationen anzeigen diff --git a/config/appVersion.js b/config/appVersion.js index a46797e97..a09a03c52 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.130"; +export const APP_VERSION = "1.1.131";