Files
nodeMap/components/mainComponent/hooks/useFetchPoiData.js

52 lines
1.9 KiB
JavaScript

// /components/mainComponent/hooks/useFetchWebServiceMap.js
import { useEffect, useState } from "react";
const API_BASE_URL = process.env.NEXT_PUBLIC_API_PORT_3000; // API-URL aus .env.local
const useFetchPoiData = (setPoiTypMap, setPoiData) => {
useEffect(() => {
console.log(`🌍 API_BASE_URL aus .env.local: ${API_BASE_URL}`);
console.log("✅ useFetchPoiData wurde gestartet...");
console.log(`🌍 API_BASE_URL: ${API_BASE_URL}`); // Debugging: Prüfen, ob die Umgebungsvariable korrekt geladen wird
const fetchPoiTypData = async () => {
try {
console.log("📡 Lade POI-Typ-Daten...");
const response = await fetch(`${API_BASE_URL}/api/talas_v5_DB/poiTyp/readPoiTyp`);
const data = await response.json();
if (!Array.isArray(data)) {
console.warn(`⚠️ Unerwartetes Format: ${JSON.stringify(data)}`);
throw new Error("Daten sind kein Array");
}
const map = new Map();
data.forEach((item) => map.set(item.idPoiTyp, item.name));
setPoiTypMap(map);
console.log("✅ POI-Typ-Daten erfolgreich geladen!");
} catch (error) {
console.error("❌ Fehler beim Abrufen der POI-Typ-Daten:", error);
}
};
const fetchPoiData = async () => {
try {
console.log("📡 Lade POI-Icons...");
const response = await fetch(`${API_BASE_URL}/api/talas_v5_DB/pois/poi-icons`);
if (!response.ok) {
throw new Error(`Netzwerkantwort war nicht ok, Status: ${response.status}`);
}
const data = await response.json();
setPoiData(data);
console.log("✅ POI-Icons erfolgreich geladen!", data);
} catch (error) {
console.error("❌ Fehler beim Abrufen der POI-Daten:", error);
}
};
fetchPoiTypData();
fetchPoiData();
}, [setPoiTypMap, setPoiData]);
};
export default useFetchPoiData;