From 808673cb135a86f1f2de16045ed29ac849d505c3 Mon Sep 17 00:00:00 2001 From: ISA Date: Sun, 22 Dec 2024 06:49:19 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20Fetch-Logik=20f=C3=BCr=20Priorit=C3=A4t?= =?UTF-8?q?skonfiguration=20in=20useFetchPriorityConfig=20Hook=20ausgelage?= =?UTF-8?q?rt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fetch-Logik für Prioritätskonfiguration aus MapComponent.js in einen separaten Hook ausgelagert. - Neuer Hook: useFetchPriorityConfig im hooks-Verzeichnis hinzugefügt. - Verbesserung der Modularität und Wiederverwendbarkeit. --- components/MapComponent.js | 18 ++---------------- hooks/useFetchPriorityConfig.js | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 hooks/useFetchPriorityConfig.js diff --git a/components/MapComponent.js b/components/MapComponent.js index 0721c88f6..33c06c3e9 100644 --- a/components/MapComponent.js +++ b/components/MapComponent.js @@ -45,6 +45,7 @@ import { disablePolylineEvents, enablePolylineEvents } from "../utils/setupPolyl import { updateLocation } from "../utils/updateBereichUtil"; import { usePolylineTooltipLayer } from "../hooks/usePolylineTooltipLayer"; import { useFetchLineStatusData } from "../hooks/useFetchLineStatusData"; +import { useFetchPriorityConfig } from "../hooks/useFetchPriorityConfig"; //-------------------------------------------- import { currentPoiState } from "../redux/slices/currentPoiSlice.js"; import { selectGisStationsStaticDistrict, setGisStationsStaticDistrict } from "../redux/slices/gisStationsStaticDistrictSlice"; @@ -528,22 +529,7 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { }, [map, poiLayerRef, isPoiTypLoaded, menuItemAdded, hasRights, isRightsLoaded]); //-------------------------------------------- // rote Marker ganz oben wenn überlappen sind - useEffect(() => { - const fetchPriorityConfig = async () => { - try { - const res = await fetch("/api/talas_v5_DB/priorityConfig"); - if (!res.ok) { - throw new Error(`HTTP error! status: ${res.status}`); - } - const data = await res.json(); - setPriorityConfig(data); - } catch (error) { - console.error("Failed to load priority configuration:", error); - } - }; - - fetchPriorityConfig(); - }, []); + useFetchPriorityConfig(setPriorityConfig); //-------------------------------------------- useEffect(() => { if (mapRef.current && !map) { diff --git a/hooks/useFetchPriorityConfig.js b/hooks/useFetchPriorityConfig.js new file mode 100644 index 000000000..6e7ef69f4 --- /dev/null +++ b/hooks/useFetchPriorityConfig.js @@ -0,0 +1,20 @@ +import { useEffect } from "react"; + +export const useFetchPriorityConfig = (setPriorityConfig) => { + useEffect(() => { + const fetchPriorityConfig = async () => { + try { + const res = await fetch("/api/talas_v5_DB/priorityConfig"); + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + const data = await res.json(); + setPriorityConfig(data); + } catch (error) { + console.error("Failed to load priority configuration:", error); + } + }; + + fetchPriorityConfig(); + }, [setPriorityConfig]); +};