fixed marker color when mission is running, saving new pos to mission when pos is amended
This commit is contained in:
@@ -35,6 +35,8 @@ import { deleteMissionAPI, editMissionAPI, sendMissionAPI } from "querys/mission
|
||||
import { getConnectedAircraftsAPI } from "querys/aircrafts";
|
||||
import { getStationsAPI } from "querys/stations";
|
||||
import { useDispatchConnectionStore } from "_store/dispatch/connectionStore";
|
||||
import { HPGValidationRequired } from "helpers/hpgValidationRequired";
|
||||
import { getOsmAddress } from "querys/osm";
|
||||
|
||||
const Einsatzdetails = ({
|
||||
mission,
|
||||
@@ -53,6 +55,10 @@ const Einsatzdetails = ({
|
||||
});
|
||||
},
|
||||
});
|
||||
const { data: aircrafts } = useQuery({
|
||||
queryKey: ["aircrafts"],
|
||||
queryFn: getConnectedAircraftsAPI,
|
||||
});
|
||||
const sendAlertMutation = useMutation({
|
||||
mutationKey: ["missions"],
|
||||
mutationFn: (id: number) => sendMissionAPI(id, {}),
|
||||
@@ -155,26 +161,36 @@ const Einsatzdetails = ({
|
||||
<Navigation size={16} /> {mission.addressStreet}
|
||||
</p>
|
||||
<p className="flex items-center gap-2">
|
||||
<LocateFixed size={16} /> {mission.addressZip} {mission.addressCity}
|
||||
{mission.addressZip && mission.addressCity ? (
|
||||
`${mission.addressZip} ${mission.addressCity}`
|
||||
) : (
|
||||
<span className="italic text-gray-400">PLZ Ort nicht angegeben</span>
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
{mission.state === "draft" && (
|
||||
<div>
|
||||
<div className="divider mt-0 mb-0" />
|
||||
|
||||
<div className="form-control mb-2">
|
||||
<label className="flex items-center gap-2 cursor-pointer">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="checkbox checkbox-sm checkbox-primary"
|
||||
checked={ignoreHpg}
|
||||
onChange={(e) => setIgnoreHpg(e.target.checked)}
|
||||
/>
|
||||
<span className="label-text font-semibold leading-6">
|
||||
Ohne HPG-Mission alarmieren
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
{HPGValidationRequired(
|
||||
mission.missionStationIds,
|
||||
aircrafts,
|
||||
mission.hpgMissionString,
|
||||
) && (
|
||||
<div className="form-control mb-2">
|
||||
<label className="flex items-center gap-2 cursor-pointer">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="checkbox checkbox-sm checkbox-primary"
|
||||
checked={ignoreHpg}
|
||||
onChange={(e) => setIgnoreHpg(e.target.checked)}
|
||||
/>
|
||||
<span className="label-text font-semibold leading-6">
|
||||
Ohne HPG-Mission alarmieren
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="flex items-center gap-2 w-full">
|
||||
{(!hpgNeedsAttention || ignoreHpg) &&
|
||||
@@ -220,7 +236,23 @@ const Einsatzdetails = ({
|
||||
{!ignoreHpg && mission.hpgValidationState === HpgValidationState.POSITION_AMANDED && (
|
||||
<button
|
||||
className="btn btn-sm btn-warning btn-outline flex-3"
|
||||
onClick={() => sendAlertMutation.mutate(mission.id)}
|
||||
onClick={async () => {
|
||||
const { parsed } = await getOsmAddress(
|
||||
mission.hpgLocationLat || mission.addressLat,
|
||||
mission.hpgLocationLng || mission.addressLng,
|
||||
);
|
||||
await editMissionMutation.mutateAsync({
|
||||
id: mission.id,
|
||||
mission: {
|
||||
addressLat: mission.hpgLocationLat || mission.addressLat,
|
||||
addressLng: mission.hpgLocationLng || mission.addressLng,
|
||||
addressStreet: parsed.addressStreet,
|
||||
addressCity: parsed.addressCity,
|
||||
addressZip: parsed.addressZip,
|
||||
},
|
||||
});
|
||||
await sendAlertMutation.mutateAsync(mission.id);
|
||||
}}
|
||||
>
|
||||
<span className="flex items-center gap-2">
|
||||
<BellRing size={16} /> Mit neuer Position alarmieren
|
||||
|
||||
Reference in New Issue
Block a user