feat: GIS-Linien von direktem fetch auf Redux umgestellt

- fetchGisLinesService, Thunk und Slice erstellt
- MapComponent nutzt dispatch(fetchGisLinesThunk())
- Linien-Daten zentral aus Redux (state.gisLines.data) übernommen
- fetch(...) entfernt und durch Redux-Logik ersetzt
- Version erhöht auf 1.1.130
This commit is contained in:
ISA
2025-05-21 13:58:34 +02:00
parent 230bededa0
commit 79c98b0512
3 changed files with 37 additions and 29 deletions

View File

@@ -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