52 lines
1.9 KiB
JavaScript
52 lines
1.9 KiB
JavaScript
// /components/mainComponent/hooks/useFetchPoiData.js
|
|
import { useEffect, useState } from "react";
|
|
|
|
const API_BASE_URL = typeof window !== "undefined" ? `${window.location.protocol}//${window.location.hostname}:3000` : "";
|
|
|
|
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;
|