feat: Alarm UI Widget
This commit is contained in:
@@ -133,7 +133,7 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
const poiLayerVisible = useSelector(state => state.poiLayerVisible.visible);
|
||||
const zoomTrigger = useSelector(state => state.zoomTrigger.trigger);
|
||||
const poiReadTrigger = useSelector(state => state.poiReadFromDbTrigger.trigger);
|
||||
const GisStationsStaticDistrict = useSelector(selectGisStationsStaticDistrict);
|
||||
// entfernt, da weiter unten dynamisch und mit Fallback deklariert
|
||||
const gisSystemStaticStatus = useSelector(state => state.gisSystemStatic.status);
|
||||
const polylineEventsDisabled = useSelector(state => state.polylineEventsDisabled.disabled);
|
||||
const mapLayersVisibility = useSelector(selectMapLayersState) || {};
|
||||
@@ -144,25 +144,37 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
selectGisLinesStatusFromWebservice
|
||||
);
|
||||
|
||||
// Alarm Status und Link aus GisStationsStatusDistrict
|
||||
// Alarm Status und Link dynamisch aus GisStationsStaticDistrict
|
||||
const gisStationsStatusDistrict = useSelector(state => state.gisStationsStatusDistrict.data);
|
||||
// Unterstützt sowohl Array-Shape (Statis[]) als auch Objekt mit Statis-Array
|
||||
const GisStationsStaticDistrict = useSelector(selectGisStationsStaticDistrict) || {};
|
||||
const pointsArr = GisStationsStaticDistrict.Points || [];
|
||||
let hasActiveAlarm = false;
|
||||
let alarmLink = "";
|
||||
let alarmText = "";
|
||||
let alarmIdLD = null;
|
||||
if (Array.isArray(gisStationsStatusDistrict)) {
|
||||
const alarmObj = gisStationsStatusDistrict.find(item => item?.Alarm === 1 && item?.AlarmLink);
|
||||
const alarmObj = gisStationsStatusDistrict.find(item => item?.Alarm === 1);
|
||||
hasActiveAlarm = !!alarmObj;
|
||||
alarmLink = alarmObj?.AlarmLink || "";
|
||||
alarmIdLD = alarmObj?.IdLD;
|
||||
alarmText = alarmObj?.Me || "Alarm aktiv";
|
||||
} else if (gisStationsStatusDistrict?.Statis) {
|
||||
const alarmObj = gisStationsStatusDistrict.Statis.find(
|
||||
item => item?.Alarm === 1 && item?.AlarmLink
|
||||
);
|
||||
const alarmObj = gisStationsStatusDistrict.Statis.find(item => item?.Alarm === 1);
|
||||
hasActiveAlarm = !!alarmObj;
|
||||
alarmLink = alarmObj?.AlarmLink || "";
|
||||
alarmIdLD = alarmObj?.IdLD;
|
||||
alarmText = alarmObj?.Me || "Alarm aktiv";
|
||||
}
|
||||
if (hasActiveAlarm && alarmIdLD) {
|
||||
const staticObj = pointsArr.find(p => p.IdLD === alarmIdLD);
|
||||
if (staticObj && staticObj.Link) {
|
||||
// Link kann relativ sein, ggf. mit Host ergänzen
|
||||
const isAbsolute =
|
||||
staticObj.Link.startsWith("http://") || staticObj.Link.startsWith("https://");
|
||||
alarmLink = isAbsolute
|
||||
? staticObj.Link
|
||||
: //: `${window.location.origin}/talas5/devices/${staticObj.Link}`;
|
||||
`http://10.10.0.13/talas5/devices/${staticObj.Link}`; // nur zum Testen
|
||||
}
|
||||
}
|
||||
const poiIconsData = useSelector(selectPoiIconsData);
|
||||
const poiIconsStatus = useSelector(selectPoiIconsStatus);
|
||||
const poiTypData = useSelector(selectPoiTypData);
|
||||
|
||||
Reference in New Issue
Block a user