Position übernehmen beim bearbeiten von Einsätzen ändert nun die Position von Einsätzen
This commit is contained in:
@@ -30,7 +30,7 @@ import { AxiosError } from "axios";
|
||||
import { cn } from "_helpers/cn";
|
||||
|
||||
export const MissionForm = () => {
|
||||
const { isEditingMission, editingMissionId, setEditingMission } = usePannelStore();
|
||||
const { editingMissionId, setEditingMission } = usePannelStore();
|
||||
const queryClient = useQueryClient();
|
||||
const { setSearchElements, searchElements, setContextMenu } = useMapStore((s) => s);
|
||||
|
||||
@@ -130,7 +130,9 @@ export const MissionForm = () => {
|
||||
"addressOSMways",
|
||||
searchElements.filter((e) => e.isSelected) as unknown as JsonValueType[],
|
||||
);
|
||||
}, [searchElements, form]);
|
||||
}, [searchElements, form, missionFormValues]);
|
||||
|
||||
console.log("addressOSMways", form.watch("addressOSMways"));
|
||||
|
||||
useEffect(() => {
|
||||
if (missionFormValues) {
|
||||
@@ -139,6 +141,7 @@ export const MissionForm = () => {
|
||||
return;
|
||||
}
|
||||
for (const key in missionFormValues) {
|
||||
if (key === "addressOSMways") continue; // Skip addressOSMways as it is handled separately
|
||||
form.setValue(
|
||||
key as keyof MissionOptionalDefaults,
|
||||
missionFormValues[key as keyof MissionOptionalDefaults],
|
||||
@@ -416,16 +419,17 @@ export const MissionForm = () => {
|
||||
|
||||
<div className="form-control min-h-[140px]">
|
||||
<div className="flex gap-2">
|
||||
{isEditingMission && editingMissionId ? (
|
||||
{editingMissionId ? (
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-primary flex-1"
|
||||
onClick={form.handleSubmit(async (mission: MissionOptionalDefaults) => {
|
||||
try {
|
||||
console.log("Saving mission", mission.addressOSMways);
|
||||
const newMission = await saveMission(mission);
|
||||
toast.success(`Einsatz ${newMission.id} erfolgreich aktualisiert`);
|
||||
setSearchElements([]); // Reset search elements
|
||||
setEditingMission(false, null); // Reset editing state
|
||||
setEditingMission(null); // Reset editing state
|
||||
form.reset(); // Reset the form
|
||||
setOpen(false);
|
||||
} catch (error) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import { getMissionsAPI } from "_querys/missions";
|
||||
|
||||
export const Pannel = () => {
|
||||
const { setOpen, setMissionFormValues } = usePannelStore();
|
||||
const { isEditingMission, setEditingMission, missionFormValues } = usePannelStore();
|
||||
const { editingMissionId, setEditingMission, missionFormValues } = usePannelStore();
|
||||
const missions = useQuery({
|
||||
queryKey: ["missions"],
|
||||
queryFn: () =>
|
||||
@@ -18,36 +18,29 @@ export const Pannel = () => {
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (isEditingMission && missionFormValues) {
|
||||
if (editingMissionId && missionFormValues) {
|
||||
const mission = missions.data?.find((mission) => mission.id === missionFormValues.id);
|
||||
if (!mission) {
|
||||
setEditingMission(false, null);
|
||||
setEditingMission(null);
|
||||
setMissionFormValues({});
|
||||
setOpen(false);
|
||||
}
|
||||
}
|
||||
}, [
|
||||
isEditingMission,
|
||||
missions,
|
||||
setMissionFormValues,
|
||||
setEditingMission,
|
||||
setOpen,
|
||||
missionFormValues,
|
||||
]);
|
||||
}, [missions, setMissionFormValues, setEditingMission, setOpen, missionFormValues]);
|
||||
|
||||
return (
|
||||
<div className={cn("flex-1 max-w-[600px] z-9999999")}>
|
||||
<div className="bg-base-100 min-h-screen h-full max-h-screen w-full overflow-auto">
|
||||
<div className="flex flex-row justify-between items-center p-4">
|
||||
<h1 className="text-xl font-bold flex items-center gap-2">
|
||||
<Rss /> {isEditingMission ? "Einsatz bearbeiten" : "Neuer Einsatz"}
|
||||
<Rss /> {editingMissionId ? "Einsatz bearbeiten" : "Neuer Einsatz"}
|
||||
</h1>
|
||||
<div>
|
||||
<button
|
||||
className="btn btn-ghost btn-sm mr-2 btn-warning"
|
||||
onClick={() => {
|
||||
setMissionFormValues({});
|
||||
setEditingMission(false, null);
|
||||
setEditingMission(null);
|
||||
}}
|
||||
>
|
||||
<Trash2Icon size={18} />
|
||||
@@ -56,7 +49,7 @@ export const Pannel = () => {
|
||||
className="btn"
|
||||
onClick={() => {
|
||||
setOpen(false);
|
||||
setEditingMission(false, null);
|
||||
setEditingMission(null);
|
||||
setMissionFormValues({});
|
||||
}}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user