57 lines
1.7 KiB
JavaScript
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,
|
|
};
|
|
};
|