Files
var-monorepo/apps/dispatch/app/_store/missionsStore.ts
2025-04-21 23:57:18 +02:00

42 lines
1.1 KiB
TypeScript

import { MissionOptionalDefaults } from "@repo/db/zod";
import { create } from "zustand";
interface MissionStore {
missions: MissionOptionalDefaults[];
setMissions: (missions: MissionOptionalDefaults[]) => void;
setMission: (mission: MissionOptionalDefaults) => void;
}
export const useMissionsStore = create<MissionStore>((set) => ({
missions: [
{
state: "draft",
id: "01250325",
addressLat: 52.520008,
addressLng: 13.404954,
addressStreet: "Alexanderplatz",
addressCity: "Berlin",
addressZip: "10178",
missionAdditionalInfo: "Additional info",
missionCategory: "AB_Atmung",
missionKeyword: "Zunehmende Beschwerden",
missionSummary: "AB1_0",
missionPatientInfo: "M/10",
},
],
setMissions: (missions) => set({ missions }),
setMission: (mission) =>
set((state) => {
const existingMissionIndex = state.missions.findIndex(
(m) => m.id === mission.id,
);
if (existingMissionIndex !== -1) {
const updatedMissions = [...state.missions];
updatedMissions[existingMissionIndex] = mission;
return { missions: updatedMissions };
} else {
return { missions: [...state.missions, mission] };
}
}),
}));