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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user