feat: useEffect für WebService-Abfragen in eigenen Hook ausgelagert
- useEffect-Block für API-Abfragen (GIS Stations Status, Measurements, System Static) in `useFetchWebServiceMap.js` ausgelagert - Verbesserung der Code-Struktur und Übersichtlichkeit in `MapComponent.js` - Logging hinzugefügt, um API-Abrufe und Fehler besser nachzuverfolgen - Sicherstellung, dass `localStorage`-Werte korrekt aktualisiert werden
This commit is contained in:
52
components/mainComponent/hooks/useFetchWebServiceMap.js
Normal file
52
components/mainComponent/hooks/useFetchWebServiceMap.js
Normal file
@@ -0,0 +1,52 @@
|
||||
// /components/mainComponent/hooks/useFetchWebServiceMap.js
|
||||
import { useEffect } from "react";
|
||||
import { fetchGisStationsStatusDistrict } from "../../../services/api/fetchGisStationsStatusDistrict";
|
||||
import { fetchGisStationsMeasurements } from "../../../services/api/fetchGisStationsMeasurements";
|
||||
import { fetchGisSystemStatic } from "../../../services/api/fetchGisSystemStatic";
|
||||
|
||||
const useFetchWebServiceMap = (mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl, setGisStationsStatusDistrict, setGisStationsMeasurements, setGisSystemStatic, setGisSystemStaticLoaded) => {
|
||||
useEffect(() => {
|
||||
//console.log("✅ useFetchWebServiceMap wurde ausgeführt!");
|
||||
|
||||
const fetchWebServiceMap = async () => {
|
||||
try {
|
||||
let requestCount = localStorage.getItem("fetchWebServiceMap") || 0;
|
||||
requestCount = parseInt(requestCount, 10);
|
||||
|
||||
console.log("📡 Starte API-Anfragen...");
|
||||
|
||||
const fetchOptions = {
|
||||
method: "GET",
|
||||
headers: { Connection: "close" },
|
||||
};
|
||||
|
||||
// GIS Stations Status District abrufen
|
||||
console.log("⏳ Abrufen von GIS Stations Status District...");
|
||||
await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStationsStatusDistrict, fetchOptions);
|
||||
// console.log("✅ fetchGisStationsStatusDistrict erfolgreich!");
|
||||
requestCount++;
|
||||
localStorage.setItem("fetchWebServiceMap", requestCount);
|
||||
|
||||
// GIS Stations Measurements abrufen
|
||||
console.log("⏳ Abrufen von GIS Stations Measurements...");
|
||||
await fetchGisStationsMeasurements(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions);
|
||||
// console.log("✅ fetchGisStationsMeasurements erfolgreich!");
|
||||
requestCount++;
|
||||
localStorage.setItem("fetchWebServiceMap", requestCount);
|
||||
|
||||
// GIS System Static abrufen
|
||||
console.log("⏳ Abrufen von GIS System Static...");
|
||||
await fetchGisSystemStatic(mapGisSystemStaticUrl, setGisSystemStatic, setGisSystemStaticLoaded, fetchOptions);
|
||||
//console.log("✅ fetchGisSystemStatic erfolgreich!");
|
||||
requestCount++;
|
||||
localStorage.setItem("fetchWebServiceMap", requestCount);
|
||||
} catch (error) {
|
||||
console.error("❌ Fehler beim Abrufen der WebService-Daten:", error);
|
||||
}
|
||||
};
|
||||
|
||||
fetchWebServiceMap();
|
||||
}, [mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl]);
|
||||
};
|
||||
|
||||
export default useFetchWebServiceMap;
|
||||
Reference in New Issue
Block a user