Files
nodeMap/hooks/useMapComponentState.js
ISA bbca980b5b refactor(hooks): useMapComponentState vollständig auf Redux umgestellt
- fetch-Aufrufe entfernt und durch Redux-Selektoren ersetzt
- poiTypData über poiTypSlice + fetchPoiTypThunk geladen
- locationDeviceData über gisStationsStaticDistrictThunk
- priorityConfig über Redux mit fetchPriorityConfigThunk integriert
- poiLayerVisible direkt aus Redux-State gelesen
- Version auf 1.1.173 erhöht
2025-05-26 11:42:11 +02:00

68 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// /hooks/useMapComponentState.js
import { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
// Redux: POI-Typen
import { fetchPoiTypThunk } from "../redux/thunks/database/pois/fetchPoiTypThunk";
import { selectPoiTypData, selectPoiTypStatus } from "../redux/slices/database/pois/poiTypSlice";
// Redux: GIS Geräte
import { fetchGisStationsStaticDistrictThunk } from "../redux/thunks/webservice/fetchGisStationsStaticDistrictThunk";
import { selectGisStationsStaticDistrict } from "../redux/slices/webservice/gisStationsStaticDistrictSlice";
// Redux: priorityConfig
import { fetchPriorityConfigThunk } from "../redux/thunks/database/fetchPriorityConfigThunk";
import { selectPriorityConfig } from "../redux/slices/database/priorityConfigSlice";
export const useMapComponentState = () => {
const dispatch = useDispatch();
// Redux: Sichtbarkeit des POI-Layers
const poiLayerVisible = useSelector((state) => state.poiLayerVisible.visible);
// Redux: POI-Typen
const poiTypData = useSelector(selectPoiTypData);
const poiTypStatus = useSelector(selectPoiTypStatus);
// Redux: Geräte
const locationDeviceData = useSelector(selectGisStationsStaticDistrict);
const deviceName = locationDeviceData?.Points?.[0]?.LD_Name || "";
// Redux: Prioritätskonfiguration
const priorityConfig = useSelector(selectPriorityConfig);
// UI-interner Zustand
const [menuItemAdded, setMenuItemAdded] = useState(false);
// POI-Typen laden
useEffect(() => {
if (process.env.NEXT_PUBLIC_USE_MOCK_API === "true") {
console.warn("⚠️ POI-Typen im Mock-Modus Redux-Thunk wird nicht ausgeführt.");
} else if (poiTypStatus === "idle") {
dispatch(fetchPoiTypThunk());
}
}, [dispatch, poiTypStatus]);
// GIS Geräte laden
useEffect(() => {
dispatch(fetchGisStationsStaticDistrictThunk());
}, [dispatch]);
// PriorityConfig laden
useEffect(() => {
dispatch(fetchPriorityConfigThunk());
}, [dispatch]);
return {
poiTypData,
isPoiTypLoaded: poiTypStatus === "succeeded",
deviceName,
locationDeviceData,
priorityConfig,
menuItemAdded,
setMenuItemAdded,
poiLayerVisible,
};
};