cleanup: MapComponent.js

This commit is contained in:
ISA
2025-05-22 13:25:30 +02:00
parent 04b8cb2963
commit 0a0e63feef
6 changed files with 69 additions and 72 deletions

View File

@@ -66,6 +66,7 @@ import { fetchGisLinesStatusThunk } from "../../redux/thunks/webservice/fetchGis
import { fetchUserRightsThunk } from "../../redux/thunks/webservice/fetchUserRightsThunk"; import { fetchUserRightsThunk } from "../../redux/thunks/webservice/fetchUserRightsThunk";
import { selectGisLines } from "../../redux/slices/database/gisLinesSlice"; import { selectGisLines } from "../../redux/slices/database/gisLinesSlice";
import { selectGisLinesStatus } from "../../redux/slices/webservice/gisLinesStatusSlice"; import { selectGisLinesStatus } from "../../redux/slices/webservice/gisLinesStatusSlice";
import { selectGisLinesStatusFromWebservice } from "../../redux/slices/webservice/gisLinesStatusSlice";
const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
//------------------------------- //-------------------------------
@@ -90,10 +91,10 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
const polylineEventsDisabled = useSelector((state) => state.polylineEventsDisabled.disabled); const polylineEventsDisabled = useSelector((state) => state.polylineEventsDisabled.disabled);
const mapLayersVisibility = useSelector(selectMapLayersState) || {}; const mapLayersVisibility = useSelector(selectMapLayersState) || {};
const selectedArea = useSelector((state) => state.selectedArea.area); const selectedArea = useSelector((state) => state.selectedArea.area);
const linesData = useSelector((state) => state.gisLines.data); const linesData = useSelector((state) => state.gisLinesFromDatabase.data);
const gisLinesStatus = useSelector((state) => state.gisLines.status); const gisLinesStatus = useSelector((state) => state.gisLinesStatusFromWebservice.status);
const { data: gisLinesStatusData, status: statusGisLinesStatus } = useSelector(selectGisLinesStatus); const { data: gisLinesStatusData, status: statusGisLinesStatus } = useSelector(selectGisLinesStatusFromWebservice);
useEffect(() => { useEffect(() => {
console.log("✅ Redux: gisLinesStatusData:", gisLinesStatusData); console.log("✅ Redux: gisLinesStatusData:", gisLinesStatusData);
}, [gisLinesStatusData]); }, [gisLinesStatusData]);
@@ -219,31 +220,6 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
const sonstigeMarkersLayerRef = useRef(null); const sonstigeMarkersLayerRef = useRef(null);
const tkComponentsMarkersRef = useRef(null); const tkComponentsMarkersRef = useRef(null);
useInitializeMap(map, mapRef, setMap, setOms, setMenuItemAdded, addItemsToMapContextMenu, hasRights, (value) => dispatch(setDisabled(value))); useInitializeMap(map, mapRef, setMap, setOms, setMenuItemAdded, addItemsToMapContextMenu, hasRights, (value) => dispatch(setDisabled(value)));
//---------------------------------------------------------------
useEffect(() => {
const params = new URL(window.location.href).searchParams;
dispatch(setMapId(params.get("m")));
dispatch(setUserId(params.get("u")));
}, [dispatch]);
//---------------------------------------------------------------
useEffect(() => {
dispatch(fetchPriorityConfigThunk());
}, [dispatch]);
//--------------------------------------------------------
useEffect(() => {
if (gisLinesStatus === "idle") {
dispatch(fetchGisLinesThunk());
}
}, [gisLinesStatus, dispatch]);
//--------------------------------------------------------
useEffect(() => {
dispatch(fetchGisLinesStatusThunk());
}, [dispatch]);
//---------------------------------------------------------
useEffect(() => {
dispatch(fetchUserRightsThunk());
}, [dispatch]);
//----------------------------------------------------
useEffect(() => { useEffect(() => {
if (linesData && Array.isArray(linesData)) { if (linesData && Array.isArray(linesData)) {
@@ -370,13 +346,6 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
mapLayersVisibility, // Neu: Abhängigkeit für Sichtbarkeitsstatus mapLayersVisibility, // Neu: Abhängigkeit für Sichtbarkeitsstatus
]); ]);
//--------------------------------------------
useEffect(() => {
if (poiTypStatus === "idle") {
dispatch(fetchPoiTypes());
}
}, [poiTypStatus, dispatch]);
//----------------------------------------------------------------- //-----------------------------------------------------------------
//Tooltip an mouse position anzeigen für die Linien //Tooltip an mouse position anzeigen für die Linien
useEffect(() => { useEffect(() => {
@@ -807,6 +776,23 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
dispatch(setPolylineVisible(storedPolylineVisible)); dispatch(setPolylineVisible(storedPolylineVisible));
}, [dispatch]); }, [dispatch]);
//-------------------------------------------- //--------------------------------------------
useEffect(() => {
if (statusStaticDistrict === "idle") {
dispatch(fetchGisStationsStaticDistrictThunk());
}
}, [statusStaticDistrict, dispatch]);
useEffect(() => {
if (statusStatusDistrict === "idle") {
dispatch(fetchGisStationsStatusDistrictThunk());
}
}, [statusStatusDistrict, dispatch]);
useEffect(() => {
if (statusMeasurements === "idle") {
dispatch(fetchGisStationsMeasurementsThunk());
}
}, [statusMeasurements, dispatch]);
useEffect(() => { useEffect(() => {
if (statusSystem === "idle") { if (statusSystem === "idle") {
@@ -814,32 +800,41 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
} }
}, [statusSystem, dispatch]); }, [statusSystem, dispatch]);
useEffect(() => {
if (statusStatusDistrict === "idle") {
dispatch(fetchGisStationsStatusDistrictThunk());
}
}, [statusStatusDistrict, dispatch]);
//----------------------------------------------
// speichere location devices in redux store
useEffect(() => { useEffect(() => {
dispatch(fetchLocationDevicesThunk()); dispatch(fetchLocationDevicesThunk());
}, [dispatch]); }, [dispatch]);
//---------------------------------------------------------------
useEffect(() => { useEffect(() => {
if (statusStaticDistrict === "idle") { const params = new URL(window.location.href).searchParams;
dispatch(fetchGisStationsStaticDistrictThunk()); dispatch(setMapId(params.get("m")));
} dispatch(setUserId(params.get("u")));
}, [statusStaticDistrict, dispatch]);
useEffect(() => {
if (statusMeasurements === "idle") {
dispatch(fetchGisStationsMeasurementsThunk());
}
}, [statusMeasurements, dispatch]);
useEffect(() => {
dispatch(fetchGisSystemStaticThunk());
}, [dispatch]); }, [dispatch]);
//---------------------------------------------------------------
useEffect(() => {
dispatch(fetchPriorityConfigThunk());
}, [dispatch]);
//--------------------------------------------------------
useEffect(() => {
if (gisLinesStatus === "idle") {
dispatch(fetchGisLinesThunk());
}
}, [gisLinesStatus, dispatch]);
//--------------------------------------------------------
useEffect(() => {
dispatch(fetchGisLinesStatusThunk());
}, [dispatch]);
//---------------------------------------------------------
const rights = useSelector((state) => state.gisUserRightsFromWebservice.rights);
useEffect(() => {
dispatch(fetchUserRightsThunk());
}, [dispatch]);
//----------------------------------------------------
useEffect(() => {
if (poiTypStatus === "idle") {
dispatch(fetchPoiTypes());
}
}, [poiTypStatus, dispatch]);
//-------------------------------------- //--------------------------------------
useEffect(() => { useEffect(() => {
@@ -869,6 +864,7 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
} }
}, [isPolylineContextMenuOpen, countdown, countdownActive, dispatch, window.map]); }, [isPolylineContextMenuOpen, countdown, countdownActive, dispatch, window.map]);
//---------------------------------- //----------------------------------
// map in window setzen für mehr Debugging
useEffect(() => { useEffect(() => {
if (map) { if (map) {
window.map = map; window.map = map;
@@ -877,6 +873,8 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
}, [map]); }, [map]);
//--------------------------------------- //---------------------------------------
// **Fehlerbehandlung für `contextmenu`**
// damit den Fehler mit contextmenu nicht angezeigt wird und überspringt wird und die Seite neu geladen wird
useEffect(() => { useEffect(() => {
window.onerror = function (message, source, lineno, colno, error) { window.onerror = function (message, source, lineno, colno, error) {
if (message.includes("Cannot read properties of null (reading 'contextmenu')")) { if (message.includes("Cannot read properties of null (reading 'contextmenu')")) {
@@ -894,7 +892,6 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
}, []); }, []);
//--------------------------------------------- //---------------------------------------------
//-------------------------------------------- //--------------------------------------------
return ( return (
<> <>

View File

@@ -1,2 +1,2 @@
// /config/appVersion // /config/appVersion
export const APP_VERSION = "1.1.146"; export const APP_VERSION = "1.1.147";

View File

@@ -3,7 +3,7 @@ import { createSlice } from "@reduxjs/toolkit";
import { fetchGisLinesThunk } from "../../thunks/database/fetchGisLinesThunk"; import { fetchGisLinesThunk } from "../../thunks/database/fetchGisLinesThunk";
const gisLinesSlice = createSlice({ const gisLinesSlice = createSlice({
name: "gisLines", name: "gisLinesFromDatabase",
initialState: { initialState: {
data: [], data: [],
status: "idle", status: "idle",

View File

@@ -9,7 +9,7 @@ const initialState = {
}; };
export const gisLinesStatusSlice = createSlice({ export const gisLinesStatusSlice = createSlice({
name: "gisLinesStatus", name: "gisLinesStatusFromWebservice",
initialState, initialState,
reducers: {}, reducers: {},
extraReducers: (builder) => { extraReducers: (builder) => {
@@ -30,4 +30,4 @@ export const gisLinesStatusSlice = createSlice({
export default gisLinesStatusSlice.reducer; export default gisLinesStatusSlice.reducer;
export const selectGisLinesStatus = (state) => state.gisLinesStatus; export const selectGisLinesStatusFromWebservice = (state) => state.gisLinesStatusFromWebservice;

View File

@@ -9,7 +9,7 @@ const initialState = {
}; };
export const userRightsSlice = createSlice({ export const userRightsSlice = createSlice({
name: "userRights", name: "gisUserRightsFromWebservice",
initialState, initialState,
reducers: {}, reducers: {},
extraReducers: (builder) => { extraReducers: (builder) => {
@@ -30,5 +30,5 @@ export const userRightsSlice = createSlice({
export default userRightsSlice.reducer; export default userRightsSlice.reducer;
export const selectUserRights = (state) => state.userRights.rights; export const selectGisUserRightsFromWebservice = (state) => state.gisUserRightsFromWebservice.rights;
export const selectUserRightsStatus = (state) => state.userRights.status; export const selectGisUserRightsStatus = (state) => state.gisUserRightsFromWebservice.status;

View File

@@ -17,27 +17,30 @@ import zoomTriggerReducer from "./slices/zoomTriggerSlice";
import urlParameterReducer from "./slices/urlParameterSlice"; import urlParameterReducer from "./slices/urlParameterSlice";
//-----database------------ //-----database------------
import priorityConfigReducer from "./slices/database/priorityConfigSlice"; import priorityConfigReducer from "./slices/database/priorityConfigSlice";
import gisLinesReducer from "./slices/database/gisLinesSlice";
import poiTypesReducer from "./slices/database/poiTypesSlice"; import poiTypesReducer from "./slices/database/poiTypesSlice";
import locationDevicesFromDBReducer from "./slices/database/locationDevicesFromDBSlice"; import locationDevicesFromDBReducer from "./slices/database/locationDevicesFromDBSlice";
import gisLinesFromDatabaseReducer from "./slices/database/gisLinesSlice";
//----webservice------------ //----webservice------------
import gisStationsStaticDistrictReducer from "./slices/webservice/gisStationsStaticDistrictSlice"; import gisStationsStaticDistrictReducer from "./slices/webservice/gisStationsStaticDistrictSlice";
import gisStationsStatusDistrictReducer from "./slices/webservice/gisStationsStatusDistrictSlice"; import gisStationsStatusDistrictReducer from "./slices/webservice/gisStationsStatusDistrictSlice";
import gisStationsMeasurementsReducer from "./slices/webservice/gisStationsMeasurementsSlice"; import gisStationsMeasurementsReducer from "./slices/webservice/gisStationsMeasurementsSlice";
import gisSystemStaticReducer from "./slices/webservice/gisSystemStaticSlice"; import gisSystemStaticReducer from "./slices/webservice/gisSystemStaticSlice";
import gisLinesStatusReducer from "./slices/webservice/gisLinesStatusSlice";
import userRightsReducer from "./slices/webservice/userRightsSlice"; import userRightsReducer from "./slices/webservice/userRightsSlice";
import gisLinesStatusFromWebserviceReducer from "./slices/webservice/gisLinesStatusSlice";
export const store = configureStore({ export const store = configureStore({
reducer: { reducer: {
lineVisibility: lineVisibilityReducer,
currentPoi: currentPoiReducer,
polylineLayerVisible: polylineLayerVisibleReducer,
locationDevicesFromDB: locationDevicesFromDBReducer,
gisStationsStaticDistrict: gisStationsStaticDistrictReducer, gisStationsStaticDistrict: gisStationsStaticDistrictReducer,
gisStationsStatusDistrict: gisStationsStatusDistrictReducer, gisStationsStatusDistrict: gisStationsStatusDistrictReducer,
gisStationsMeasurements: gisStationsMeasurementsReducer, gisStationsMeasurements: gisStationsMeasurementsReducer,
gisSystemStatic: gisSystemStaticReducer, gisSystemStatic: gisSystemStaticReducer,
gisUserRightsFromWebservice: userRightsReducer,
gisLinesStatusFromWebservice: gisLinesStatusFromWebserviceReducer,
gisLinesFromDatabase: gisLinesFromDatabaseReducer,
lineVisibility: lineVisibilityReducer,
currentPoi: currentPoiReducer,
polylineLayerVisible: polylineLayerVisibleReducer,
locationDevicesFromDB: locationDevicesFromDBReducer,
poiTypes: poiTypesReducer, poiTypes: poiTypesReducer,
addPoiOnPolyline: addPoiOnPolylineReducer, addPoiOnPolyline: addPoiOnPolylineReducer,
polylineContextMenu: polylineContextMenuReducer, polylineContextMenu: polylineContextMenuReducer,
@@ -52,8 +55,5 @@ export const store = configureStore({
zoomTrigger: zoomTriggerReducer, zoomTrigger: zoomTriggerReducer,
urlParameter: urlParameterReducer, urlParameter: urlParameterReducer,
priorityConfig: priorityConfigReducer, priorityConfig: priorityConfigReducer,
gisLines: gisLinesReducer,
gisLinesStatus: gisLinesStatusReducer,
userRights: userRightsReducer,
}, },
}); });