Improved StationSelect
This commit is contained in:
@@ -370,9 +370,17 @@ const Patientdetails = ({ mission }: { mission: Mission }) => {
|
||||
|
||||
const Rettungsmittel = ({ mission }: { mission: Mission }) => {
|
||||
const queryClient = useQueryClient();
|
||||
const [selectedStation, setSelectedStation] = useState<number | "RTW" | "POL" | "FW" | null>(
|
||||
null,
|
||||
);
|
||||
const [selectedStation, setSelectedStation] = useState<{
|
||||
selectedStationId: number | undefined;
|
||||
hpgAmbulanceState: HpgState;
|
||||
hpgFireEngineState: HpgState;
|
||||
hpgPoliceState: HpgState;
|
||||
}>({
|
||||
selectedStationId: undefined,
|
||||
hpgAmbulanceState: HpgState.NOT_REQUESTED,
|
||||
hpgFireEngineState: HpgState.NOT_REQUESTED,
|
||||
hpgPoliceState: HpgState.NOT_REQUESTED,
|
||||
});
|
||||
const { data: connectedAircrafts } = useQuery({
|
||||
queryKey: ["aircrafts"],
|
||||
queryFn: () => getConnectedAircraftsAPI(),
|
||||
@@ -521,9 +529,14 @@ const Rettungsmittel = ({ mission }: { mission: Mission }) => {
|
||||
menuPlacement="top"
|
||||
className="min-w-[320px] flex-1"
|
||||
isMulti={false}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
onChange={(v: any) => {
|
||||
setSelectedStation(v);
|
||||
onChange={(v) => {
|
||||
console.log("Selected station:", v);
|
||||
setSelectedStation({
|
||||
selectedStationId: v?.selectedStationIds[0],
|
||||
hpgAmbulanceState: mission.hpgAmbulanceState || HpgState.NOT_REQUESTED,
|
||||
hpgFireEngineState: mission.hpgFireEngineState || HpgState.NOT_REQUESTED,
|
||||
hpgPoliceState: mission.hpgPoliceState || HpgState.NOT_REQUESTED,
|
||||
});
|
||||
}}
|
||||
selectedStations={mission.missionStationIds}
|
||||
filterSelected
|
||||
@@ -536,24 +549,39 @@ const Rettungsmittel = ({ mission }: { mission: Mission }) => {
|
||||
<button
|
||||
className="btn btn-sm btn-primary btn-outline"
|
||||
onClick={async () => {
|
||||
if (typeof selectedStation === "string") {
|
||||
if (
|
||||
selectedStation.hpgAmbulanceState !== "NOT_REQUESTED" ||
|
||||
selectedStation.hpgFireEngineState !== "NOT_REQUESTED" ||
|
||||
selectedStation.hpgPoliceState !== "NOT_REQUESTED"
|
||||
) {
|
||||
// Determine which vehicle type is selected
|
||||
let vehicleName: "RTW" | "POL" | "FW" | undefined;
|
||||
if (selectedStation.hpgAmbulanceState !== "NOT_REQUESTED") {
|
||||
vehicleName = "RTW";
|
||||
} else if (selectedStation.hpgPoliceState !== "NOT_REQUESTED") {
|
||||
vehicleName = "POL";
|
||||
} else if (selectedStation.hpgFireEngineState !== "NOT_REQUESTED") {
|
||||
vehicleName = "FW";
|
||||
}
|
||||
|
||||
await sendAlertMutation.mutate({
|
||||
id: mission.id,
|
||||
vehicleName: selectedStation,
|
||||
vehicleName: vehicleName,
|
||||
});
|
||||
} else {
|
||||
if (!selectedStation) return;
|
||||
if (typeof selectedStation.selectedStationId !== "number") return;
|
||||
|
||||
await updateMissionMutation.mutateAsync({
|
||||
id: mission.id,
|
||||
missionEdit: {
|
||||
missionStationIds: {
|
||||
push: selectedStation,
|
||||
push: selectedStation.selectedStationId,
|
||||
},
|
||||
},
|
||||
});
|
||||
await sendAlertMutation.mutate({
|
||||
id: mission.id,
|
||||
stationId: selectedStation,
|
||||
stationId: selectedStation.selectedStationId,
|
||||
});
|
||||
}
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user