Files
nodeMap/hooks/useMapComponentState.js
2025-03-05 17:47:28 +01:00

57 lines
1.7 KiB
JavaScript

// hooks/useMapComponentState.js
import { useState, useEffect } from "react";
import usePoiTypData from "./usePoiTypData";
import { useRecoilValue } from "recoil";
import { poiLayerVisibleState } from "../redux/slices/poiLayerVisibleSlice";
import { isMockMode } from "../config/config";
export const useMapComponentState = () => {
const { poiTypData, isPoiTypLoaded } = usePoiTypData("/api/talas_v5_DB/poiTyp/readPoiTyp");
const [deviceName, setDeviceName] = useState("");
const [locationDeviceData, setLocationDeviceData] = useState([]);
const [priorityConfig, setPriorityConfig] = useState([]);
const [menuItemAdded, setMenuItemAdded] = useState(false);
const poiLayerVisible = useRecoilValue(poiLayerVisibleState);
useEffect(() => {
const fetchDeviceData = async () => {
if (isMockMode()) {
console.log("⚠️ Mock-API: Gerätedaten geladen");
const mockData = [{ name: "Mock-Gerät 1" }, { name: "Mock-Gerät 2" }];
setLocationDeviceData(mockData);
setDeviceName(mockData[0].name);
return;
}
try {
const response = await fetch("/api/talas5/location_device");
const data = await response.json();
setLocationDeviceData(data);
if (data.length > 0) {
setDeviceName(data[0].name);
}
} catch (error) {
console.error("❌ Fehler beim Abrufen der Gerätedaten:", error);
}
};
fetchDeviceData();
}, []);
return {
poiTypData,
isPoiTypLoaded,
deviceName,
setDeviceName,
locationDeviceData,
setLocationDeviceData,
priorityConfig,
setPriorityConfig,
menuItemAdded,
setMenuItemAdded,
poiLayerVisible,
};
};