completed new mapState
This commit is contained in:
@@ -14,12 +14,18 @@ interface MapStore {
|
||||
id: string;
|
||||
tab: "home" | "";
|
||||
}[];
|
||||
setOpenMissionMarker: (mission: { open: string[]; close: string[] }) => void;
|
||||
setOpenMissionMarker: (mission: {
|
||||
open: MapStore["openMissionMarker"];
|
||||
close: string[];
|
||||
}) => void;
|
||||
openAircraftMarker: {
|
||||
id: string;
|
||||
tab: "home" | "fms" | "aircraft" | "mission" | "chat";
|
||||
}[];
|
||||
setOpenAircraftMarker: (mission: { open: string[]; close: string[] }) => void;
|
||||
setOpenAircraftMarker: (aircraft: {
|
||||
open: MapStore["openAircraftMarker"];
|
||||
close: string[];
|
||||
}) => void;
|
||||
searchElements: {
|
||||
id: number;
|
||||
nodes: {
|
||||
@@ -52,16 +58,18 @@ export const useMapStore = create<MapStore>((set, get) => ({
|
||||
setOpenMissionMarker: ({ open, close }) => {
|
||||
set((state) => ({
|
||||
openMissionMarker: [...state.openMissionMarker, ...open].filter(
|
||||
(id) => !close.includes(id),
|
||||
(marker) => !close.includes(marker.id),
|
||||
),
|
||||
}));
|
||||
},
|
||||
openAircraftMarker: [],
|
||||
setOpenAircraftMarker: ({ open, close }) => {
|
||||
set((state) => ({
|
||||
openAircraftMarker: [...state.openAircraftMarker, ...open].filter(
|
||||
(id) => !close.includes(id),
|
||||
),
|
||||
const oldMarkers = get().openAircraftMarker.filter(
|
||||
(m) => !close.includes(m.id) && !open.find((o) => o.id === m.id),
|
||||
);
|
||||
|
||||
set(() => ({
|
||||
openAircraftMarker: [...oldMarkers, ...open],
|
||||
}));
|
||||
},
|
||||
map: {
|
||||
|
||||
Reference in New Issue
Block a user