+
diff --git a/apps/dispatch/app/_components/map/MapAdditionals.tsx b/apps/dispatch/app/_components/map/MapAdditionals.tsx
index fa15ea75..c23f1b86 100644
--- a/apps/dispatch/app/_components/map/MapAdditionals.tsx
+++ b/apps/dispatch/app/_components/map/MapAdditionals.tsx
@@ -2,19 +2,75 @@
import { usePannelStore } from "_store/pannelStore";
import { Marker } from "react-leaflet";
import L from "leaflet";
+import { useQuery } from "@tanstack/react-query";
+import { getMissionsAPI } from "_querys/missions";
+import { HPGValidationRequired } from "_helpers/hpgValidationRequired";
+import { getConnectedAircraftsAPI } from "_querys/aircrafts";
+import { useMapStore } from "_store/mapStore";
export const MapAdditionals = () => {
- const missionForm = usePannelStore((state) => state.missionFormValues);
+ const { isOpen, missionFormValues } = usePannelStore((state) => state);
+ const { data: missions = [] } = useQuery({
+ queryKey: ["missions"],
+ queryFn: () =>
+ getMissionsAPI({
+ OR: [{ state: "draft" }, { state: "running" }],
+ }),
+ refetchInterval: 10_000,
+ });
+ const mapStore = useMapStore((state) => state);
- if (!missionForm?.addressLat || !missionForm?.addressLng) return null;
+ const { data: aircrafts } = useQuery({
+ queryKey: ["aircrafts"],
+ queryFn: () => getConnectedAircraftsAPI(),
+ refetchInterval: 10000,
+ });
+
+ const markersNeedingAttention = missions.filter(
+ (m) =>
+ HPGValidationRequired(m.missionStationIds, aircrafts, m.hpgMissionString) &&
+ m.hpgValidationState === "POSITION_AMANDED" &&
+ m.state === "draft" &&
+ m.hpgLocationLat &&
+ m.hpgLocationLng,
+ );
return (
<>
-
+ {missionFormValues?.addressLat && missionFormValues?.addressLng && isOpen && (
+
+ )}
+ {markersNeedingAttention.map((mission) => (
+
+ mapStore.setOpenMissionMarker({
+ open: [
+ {
+ id: mission.id,
+ tab: "home",
+ },
+ ],
+ close: [],
+ }),
+ }}
+ />
+ ))}
>
);
};
diff --git a/apps/dispatch/app/_components/map/MissionMarkers.tsx b/apps/dispatch/app/_components/map/MissionMarkers.tsx
index b7502b3e..36d2a8bc 100644
--- a/apps/dispatch/app/_components/map/MissionMarkers.tsx
+++ b/apps/dispatch/app/_components/map/MissionMarkers.tsx
@@ -338,22 +338,15 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
return [
editingMissionId === mission.id && missionFormValues?.addressLat
? missionFormValues.addressLat
- : mission.hpgValidationState !== "POSITION_AMANDED" && mission.hpgLocationLat
- ? mission.hpgLocationLat
- : mission.addressLat,
+ : mission.addressLat,
editingMissionId === mission.id && missionFormValues?.addressLng
? missionFormValues.addressLng
- : mission.hpgValidationState !== "POSITION_AMANDED" && mission.hpgLocationLng
- ? mission.hpgLocationLng
- : mission.addressLng,
+ : mission.addressLng,
];
}, [
editingMissionId,
mission.addressLat,
mission.addressLng,
- mission.hpgLocationLat,
- mission.hpgLocationLng,
- mission.hpgValidationState,
mission.id,
missionFormValues?.addressLat,
missionFormValues?.addressLng,
diff --git a/apps/dispatch/app/_components/map/_components/MissionMarkerTabs.tsx b/apps/dispatch/app/_components/map/_components/MissionMarkerTabs.tsx
index a7e99206..4f9e3b14 100644
--- a/apps/dispatch/app/_components/map/_components/MissionMarkerTabs.tsx
+++ b/apps/dispatch/app/_components/map/_components/MissionMarkerTabs.tsx
@@ -93,8 +93,8 @@ const Einsatzdetails = ({
const { setMissionFormValues, setOpen, setEditingMission } = usePannelStore((state) => state);
const [ignoreHpg, setIgnoreHpg] = useState(false);
return (
-
-
+
+
Einsatzdetails
@@ -126,7 +126,7 @@ const Einsatzdetails = ({