From c7e948a27a37c5dec24a4ed3c11930fee5992830 Mon Sep 17 00:00:00 2001 From: ISA Date: Tue, 11 Mar 2025 10:11:00 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20useEffect=20f=C3=BCr=20WebService-Abfra?= =?UTF-8?q?gen=20in=20eigenen=20Hook=20ausgelagert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- components/mainComponent/MapComponent.js | 50 +++--------------- .../hooks/useFetchWebServiceMap.js | 52 +++++++++++++++++++ config/appVersion.js | 2 +- 3 files changed, 59 insertions(+), 45 deletions(-) create mode 100644 components/mainComponent/hooks/useFetchWebServiceMap.js diff --git a/components/mainComponent/MapComponent.js b/components/mainComponent/MapComponent.js index ada4bacc0..c428036fe 100644 --- a/components/mainComponent/MapComponent.js +++ b/components/mainComponent/MapComponent.js @@ -83,6 +83,7 @@ import { updateCountdown, closePolylineContextMenu, forceCloseContextMenu } from //-------------------MapComponent.js hooks-------------------- import useInitializeMap from "./hooks/useInitializeMap"; import useLoadUserRights from "./hooks/useLoadUserRights"; +import useFetchWebServiceMap from "./hooks/useFetchWebServiceMap"; const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const dispatch = useDispatch(); @@ -255,50 +256,11 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { setUserId(params.get("u")); }, [setMapId, setUserId]); //--------------------------------------------------------------- - useEffect(() => { - const fetchWebServiceMap = async () => { - try { - // Zähler für externe API-Aufrufe in localStorage speichern - let requestCount = localStorage.getItem("fetchWebServiceMap") || 0; - requestCount = parseInt(requestCount, 10); - - const fetchOptions = { - method: "GET", - headers: { - Connection: "close", // Keep-Alive-Header hinzufügen - }, - }; - - // Fetch GIS Stations Static District - /* await fetchGisStationsStaticDistrict(mapGisStationsStaticDistrictUrl, dispatch, fetchOptions); - requestCount++; // Zähler erhöhen - localStorage.setItem("fetchWebServiceMap", requestCount); */ - //console.log(`fetchWebServiceMap in MapComponent wurde ${requestCount} Mal aufgerufen.`); - - // Fetch GIS Stations Status District - await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStationsStatusDistrict, fetchOptions); - requestCount++; // Zähler erhöhen - localStorage.setItem("fetchWebServiceMap", requestCount); - //console.log(`fetchWebServiceMap in MapComponent wurde ${requestCount} Mal aufgerufen.`); - - // Fetch GIS Stations Measurements - await fetchGisStationsMeasurements(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions); - requestCount++; // Zähler erhöhen - localStorage.setItem("fetchWebServiceMap", requestCount); - //console.log(`fetchWebServiceMap in MapComponent wurde ${requestCount} Mal aufgerufen.`); - - // Fetch GIS System Static - await fetchGisSystemStatic(mapGisSystemStaticUrl, setGisSystemStatic, setGisSystemStaticLoaded, fetchOptions); - requestCount++; // Zähler erhöhen - localStorage.setItem("fetchWebServiceMap", requestCount); - //console.log(`fetchWebServiceMap in MapComponent wurde ${requestCount} Mal aufgerufen.`); - } catch (error) { - console.error("Error fetching data:", error); - } - }; - - fetchWebServiceMap(); - }, [dispatch, mapGisStationsStaticDistrictUrl]); + useFetchWebServiceMap(mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl, setGisStationsStatusDistrict, setGisStationsMeasurements, setGisSystemStatic, setGisSystemStaticLoaded); + //Test in useEffect + /* useEffect(() => { + console.log("📌 Alle Marker in MapComponent in useFetchWebServiceMap:", allMarkers); + }, [allMarkers]); */ //-------------------------------------------------------- useEffect(() => { const endpoint = "/api/talas_v5_DB/gisLines/readGisLines"; diff --git a/components/mainComponent/hooks/useFetchWebServiceMap.js b/components/mainComponent/hooks/useFetchWebServiceMap.js new file mode 100644 index 000000000..cd19ddbbc --- /dev/null +++ b/components/mainComponent/hooks/useFetchWebServiceMap.js @@ -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; diff --git a/config/appVersion.js b/config/appVersion.js index 874bfaaf7..720e707c3 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.49"; +export const APP_VERSION = "1.1.50";