completed new mapState

This commit is contained in:
PxlLoewe
2025-04-17 08:00:30 -07:00
parent 6a827b4127
commit c6c0d3a6d5
4 changed files with 33 additions and 15 deletions

View File

@@ -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: {

View File

@@ -163,7 +163,7 @@ const AircraftMarker = ({ aircraft }: { aircraft: Aircraft }) => {
useEffect(() => {
const handleClick = () => {
const open = openAircraftMarker.includes(aircraft.id);
const open = openAircraftMarker.some((m) => m.id === aircraft.id);
if (open) {
setOpenAircraftMarker({
open: [],
@@ -171,7 +171,12 @@ const AircraftMarker = ({ aircraft }: { aircraft: Aircraft }) => {
});
} else {
setOpenAircraftMarker({
open: [aircraft.id],
open: [
{
id: aircraft.id,
tab: "home",
},
],
close: [],
});
}
@@ -221,7 +226,7 @@ const AircraftMarker = ({ aircraft }: { aircraft: Aircraft }) => {
)}"
style="
background-color: ${FMS_STATUS_COLORS[aircraft.fmsStatus]};
${openAircraftMarker.includes(aircraft.id) ? "opacity: 0; pointer-events: none;" : ""}
${openAircraftMarker.some((m) => m.id === aircraft.id) ? "opacity: 0; pointer-events: none;" : ""}
">
<div
@@ -268,7 +273,7 @@ const AircraftMarker = ({ aircraft }: { aircraft: Aircraft }) => {
})
}
/>
{openAircraftMarker.includes(aircraft.id) && (
{openAircraftMarker.some((m) => m.id === aircraft.id) && (
<SmartPopup
id={aircraft.id}
ref={popupRef}

View File

@@ -118,7 +118,7 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
useEffect(() => {
const handleClick = () => {
const open = openMissionMarker.includes(mission.id);
const open = openMissionMarker.some((m) => m.id === mission.id);
if (open) {
setOpenMissionMarker({
open: [],
@@ -126,7 +126,12 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
});
} else {
setOpenMissionMarker({
open: [mission.id],
open: [
{
id: mission.id,
tab: "home",
},
],
close: [],
});
}
@@ -176,7 +181,7 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
)}"
style="
background-color: ${MISSION_STATUS_COLORS[mission.state]};
${openMissionMarker.includes(mission.id) ? "opacity: 0; pointer-events: none;" : ""}
${openMissionMarker.some((m) => m.id === mission.id) ? "opacity: 0; pointer-events: none;" : ""}
">
<div
@@ -217,7 +222,7 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
})
}
/>
{openMissionMarker.includes(mission.id) && (
{openMissionMarker.some((m) => m.id === mission.id) && (
<SmartPopup
id={mission.id}
ref={popupRef}