feat: GMA-Datenaktualisierung in useUpdateGmaData Hook ausgelagert

- Fetch-Logik zum Aktualisieren der Tooltip-Werte aus MapComponent.js ausgelagert.
- Neuer Hook: useUpdateGmaData im hooks-Verzeichnis hinzugefügt.
- Verbesserung der Modularität und Wiederverwendbarkeit.
This commit is contained in:
ISA
2024-12-22 06:53:07 +01:00
parent 808673cb13
commit 2392d410be
2 changed files with 64 additions and 33 deletions

View File

@@ -46,6 +46,7 @@ import { updateLocation } from "../utils/updateBereichUtil";
import { usePolylineTooltipLayer } from "../hooks/usePolylineTooltipLayer";
import { useFetchLineStatusData } from "../hooks/useFetchLineStatusData";
import { useFetchPriorityConfig } from "../hooks/useFetchPriorityConfig";
import { useUpdateGmaData } from "../hooks/useUpdateGmaData";
//--------------------------------------------
import { currentPoiState } from "../redux/slices/currentPoiSlice.js";
import { selectGisStationsStaticDistrict, setGisStationsStaticDistrict } from "../redux/slices/gisStationsStaticDistrictSlice";
@@ -573,39 +574,14 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
}, [map]);
//--------------------------------------------
//Tooltip Werte aktualisieren
useEffect(() => {
if (!map) return; // Stelle sicher, dass die Karte initialisiert ist
const updateGmaData = async () => {
try {
const fetchOptions = {
method: "GET",
headers: {
Connection: "close",
},
};
// Aktualisiere die Messdaten
await fetchGisStationsMeasurements(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions);
// Aktualisiere die Marker-Layer
// useGmaMarkersLayer(map, gmaMarkers, GisStationsMeasurements, layers.MAP_LAYERS.GMA, oms);
} catch (error) {
console.error("Fehler beim Aktualisieren der GMA-Daten:", error);
}
};
// Initialer Datenabruf
updateGmaData();
// Setze ein Intervall, um die Daten alle 5 Sekunden zu aktualisieren
/* const intervalId = setInterval(() => {
updateGmaData();
}, 5000);
// Cleanup-Funktion, um das Intervall zu entfernen, wenn die Komponente entladen wird
return () => clearInterval(intervalId); */
}, [map, gmaMarkers, layers.MAP_LAYERS.GMA, oms, mapGisStationsMeasurementsUrl]);
useUpdateGmaData(
map,
setGisStationsMeasurements,
mapGisStationsMeasurementsUrl,
gmaMarkers,
layers,
oms
);
//---------------------------------