added revalidate btn

This commit is contained in:
PxlLoewe
2025-06-09 23:58:08 -07:00
parent 66a65ab9a4
commit 18a4dfaf6e
3 changed files with 33 additions and 18 deletions

View File

@@ -378,15 +378,11 @@ export const MissionLayer = () => {
});
const filteredMissions = useMemo(() => {
if (!dispatcherConnected) {
return missions.filter((m: Mission) => {
m.state === "running";
if (m.state === "draft" && !dispatcherConnected) return false;
if (dispatchState.hideDraftMissions && m.state === "draft") return false;
return true;
});
}
if (dispatchState.hideDraftMissions) {
return missions.filter((m: Mission) => m.state !== "draft");
}
return missions;
}, [missions, dispatcherConnected, dispatchState.hideDraftMissions]);
// IDEA: Add Marker to Map Layer / LayerGroup

View File

@@ -135,13 +135,14 @@ const PopupContent = ({
export const MarkerCluster = () => {
const map = useMap();
const dispatchState = useDispatchConnectionStore((s) => s);
const dispatcherConnected = dispatchState.status === "connected";
const { data: aircrafts } = useQuery({
queryKey: ["aircrafts"],
queryFn: getConnectedAircraftsAPI,
refetchInterval: 10_000,
});
const dispatcherConnected = useDispatchConnectionStore((s) => s.status) === "connected";
const { data: missions = [] } = useQuery({
queryKey: ["missions"],
queryFn: () =>
@@ -151,11 +152,12 @@ export const MarkerCluster = () => {
});
const filteredMissions = useMemo(() => {
if (!dispatcherConnected) {
return missions.filter((m: Mission) => m.state === "running");
}
return missions;
}, [missions, dispatcherConnected]);
return missions.filter((m: Mission) => {
if (m.state === "draft" && !dispatcherConnected) return false;
if (dispatchState.hideDraftMissions && m.state === "draft") return false;
return true;
});
}, [missions, dispatcherConnected, dispatchState.hideDraftMissions]);
// Track zoom level in state
const [zoom, setZoom] = useState(() => map.getZoom());

View File

@@ -35,7 +35,12 @@ import {
import { usePannelStore } from "_store/pannelStore";
import { useSession } from "next-auth/react";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { deleteMissionAPI, editMissionAPI, sendMissionAPI } from "_querys/missions";
import {
deleteMissionAPI,
editMissionAPI,
sendMissionAPI,
startHpgValidation,
} from "_querys/missions";
import { getConnectedAircraftsAPI } from "_querys/aircrafts";
import { getStationsAPI } from "_querys/stations";
import { useDispatchConnectionStore } from "_store/dispatch/connectionStore";
@@ -190,8 +195,8 @@ const Einsatzdetails = ({
<div>
<div className="divider mt-0 mb-0" />
{hpgNeedsAttention && (
<div className="form-control mb-2">
{true && (
<div className="form-control mb-2 flex justify-between items-center">
<label className="flex items-center gap-2 cursor-pointer">
<input
type="checkbox"
@@ -203,6 +208,18 @@ const Einsatzdetails = ({
Ohne HPG-Mission alarmieren
</span>
</label>
<button
className="btn btn-xs btn-outline btn-primary font-thin"
onClick={async () => {
await startHpgValidation(mission.id).catch((error) => {
toast.error(
error.response.data.error || "Fehler beim Validieren der HPG-Mission",
);
});
}}
>
Validierung anstoßen
</button>
</div>
)}