diff --git a/apps/dispatch/app/dispatch/_components/map/AircraftMarker.tsx b/apps/dispatch/app/dispatch/_components/map/AircraftMarker.tsx
index e97b48a8..6e390301 100644
--- a/apps/dispatch/app/dispatch/_components/map/AircraftMarker.tsx
+++ b/apps/dispatch/app/dispatch/_components/map/AircraftMarker.tsx
@@ -42,6 +42,16 @@ export const FMS_STATUS_COLORS: { [key: string]: string } = {
"7": "rgb(140,10,10)",
"8": "rgb(186,105,0)",
"9": "rgb(10,134,25)",
+ E: "rgb(186,105,0)",
+ C: "rgb(186,105,0)",
+ F: "rgb(186,105,0)",
+ J: "rgb(186,105,0)",
+ L: "rgb(186,105,0)",
+ c: "rgb(186,105,0)",
+ d: "rgb(186,105,0)",
+ h: "rgb(186,105,0)",
+ o: "rgb(186,105,0)",
+ u: "rgb(186,105,0)",
};
export const FMS_STATUS_TEXT_COLORS: { [key: string]: string } = {
@@ -55,7 +65,17 @@ export const FMS_STATUS_TEXT_COLORS: { [key: string]: string } = {
"7": "rgb(243,27,25)",
"8": "rgb(255,143,0)",
"9": "rgb(9,212,33)",
- N: "rgb(153,153,153)",
+ N: "rgb(9,212,33)",
+ E: "rgb(255,143,0)",
+ C: "rgb(255,143,0)",
+ F: "rgb(255,143,0)",
+ J: "rgb(255,143,0)",
+ L: "rgb(255,143,0)",
+ c: "rgb(255,143,0)",
+ d: "rgb(255,143,0)",
+ h: "rgb(255,143,0)",
+ o: "rgb(255,143,0)",
+ u: "rgb(255,143,0)",
};
const AircraftPopupContent = ({
diff --git a/apps/dispatch/app/dispatch/_components/map/ContextMenu.tsx b/apps/dispatch/app/dispatch/_components/map/ContextMenu.tsx
index e8247ef0..401614f6 100644
--- a/apps/dispatch/app/dispatch/_components/map/ContextMenu.tsx
+++ b/apps/dispatch/app/dispatch/_components/map/ContextMenu.tsx
@@ -2,8 +2,16 @@
import { OSMWay } from "@repo/db";
import { useMapStore } from "_store/mapStore";
import { usePannelStore } from "_store/pannelStore";
-import { MapPinned, Search } from "lucide-react";
-import { useEffect } from "react";
+import {
+ MapPin,
+ MapPinned,
+ Radius,
+ Ruler,
+ Search,
+ RulerDimensionLine,
+ Scan,
+} from "lucide-react";
+import { useEffect, useState } from "react";
import { Popup, useMap } from "react-leaflet";
export const ContextMenu = () => {
@@ -11,11 +19,19 @@ export const ContextMenu = () => {
const { contextMenu, setContextMenu, setSearchElements, setSearchPopup } =
useMapStore();
const { setMissionFormValues, setOpen } = usePannelStore((state) => state);
+ const [showRulerOptions, setShowRulerOptions] = useState(false);
+ const [rulerHover, setRulerHover] = useState(false);
+ const [rulerOptionsHover, setRulerOptionsHover] = useState(false);
+
+ useEffect(() => {
+ setShowRulerOptions(rulerHover || rulerOptionsHover);
+ }, [rulerHover, rulerOptionsHover]);
+
useEffect(() => {
const handleContextMenu = (e: any) => {
setContextMenu({ lat: e.latlng.lat, lng: e.latlng.lng });
};
- const handleClick = (e: any) => {
+ const handleClick = () => {
setContextMenu(null);
setSearchPopup(null);
};
@@ -27,7 +43,7 @@ export const ContextMenu = () => {
map.off("contextmenu", handleContextMenu);
map.off("click", handleClick);
};
- }, [contextMenu]);
+ }, [map, contextMenu, setContextMenu, setSearchPopup]);
if (!contextMenu) return null;
@@ -76,86 +92,242 @@ export const ContextMenu = () => {
autoPan={false}
>
{/* // TODO: maske: */}
-
-
);
};
diff --git a/apps/dispatch/package.json b/apps/dispatch/package.json
index f470d9a4..a558f783 100644
--- a/apps/dispatch/package.json
+++ b/apps/dispatch/package.json
@@ -22,7 +22,7 @@
"leaflet": "^1.9.4",
"livekit-client": "^2.9.7",
"livekit-server-sdk": "^2.10.2",
- "lucide-react": "^0.482.0",
+ "lucide-react": "^0.511.0",
"next": "^15.1.0",
"next-auth": "^4.24.11",
"postcss": "^8.5.1",
diff --git a/package-lock.json b/package-lock.json
index be33f769..8ecdc9b1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,7 +32,7 @@
"leaflet": "^1.9.4",
"livekit-client": "^2.9.7",
"livekit-server-sdk": "^2.10.2",
- "lucide-react": "^0.482.0",
+ "lucide-react": "^0.511.0",
"next": "^15.1.0",
"next-auth": "^4.24.11",
"postcss": "^8.5.1",
@@ -84,9 +84,9 @@
}
},
"apps/dispatch/node_modules/lucide-react": {
- "version": "0.482.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.482.0.tgz",
- "integrity": "sha512-XM8PzHzSrg8ATmmO+fzf+JyYlVVdQnJjuyLDj2p4V2zEtcKeBNAqAoJIGFv1x2HSBa7kT8gpYUxwdQ0g7nypfw==",
+ "version": "0.511.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.511.0.tgz",
+ "integrity": "sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"