From f8e9ad84b9653eb7e99029015e78d236d222d1a7 Mon Sep 17 00:00:00 2001 From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com> Date: Fri, 25 Jul 2025 20:56:21 -0700 Subject: [PATCH] resolves #103 --- apps/dispatch/app/_components/map/BaseMaps.tsx | 2 +- .../app/_components/map/MapAdditionals.tsx | 6 ++++-- .../app/_components/map/MissionMarkers.tsx | 2 +- .../dispatch/public/icons/mapMarkerAttention.png | Bin 0 -> 9065 bytes .../shared-components/components/Changelog.tsx | 5 +++-- 5 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 apps/dispatch/public/icons/mapMarkerAttention.png diff --git a/apps/dispatch/app/_components/map/BaseMaps.tsx b/apps/dispatch/app/_components/map/BaseMaps.tsx index 6648ea4a..e50e6644 100644 --- a/apps/dispatch/app/_components/map/BaseMaps.tsx +++ b/apps/dispatch/app/_components/map/BaseMaps.tsx @@ -122,7 +122,7 @@ const HeliportsLayer = () => { }; const filterVisibleHeliports = () => { - const bounds = map.getBounds(); + const bounds = map?.getBounds(); if (!heliports?.length) return; // Filtere die Heliports, die innerhalb der Kartenansicht liegen const visibleHeliports = heliports.filter((heliport) => { diff --git a/apps/dispatch/app/_components/map/MapAdditionals.tsx b/apps/dispatch/app/_components/map/MapAdditionals.tsx index ff7c5162..f60a2829 100644 --- a/apps/dispatch/app/_components/map/MapAdditionals.tsx +++ b/apps/dispatch/app/_components/map/MapAdditionals.tsx @@ -12,6 +12,7 @@ import { useDispatchConnectionStore } from "_store/dispatch/connectionStore"; export const MapAdditionals = () => { const { isOpen, missionFormValues } = usePannelStore((state) => state); const dispatcherConnectionState = useDispatchConnectionStore((state) => state.status); + const { data: missions = [] } = useQuery({ queryKey: ["missions"], queryFn: () => @@ -35,7 +36,8 @@ export const MapAdditionals = () => { m.state === "draft" && m.hpgLocationLat && dispatcherConnectionState === "connected" && - m.hpgLocationLng, + m.hpgLocationLng && + mapStore.openMissionMarker.find((openMission) => openMission.id === m.id), ); return ( @@ -56,7 +58,7 @@ export const MapAdditionals = () => { key={mission.id} position={[mission.hpgLocationLat!, mission.hpgLocationLng!]} icon={L.icon({ - iconUrl: "/icons/mapMarker.png", + iconUrl: "/icons/mapMarkerAttention.png", iconSize: [40, 40], iconAnchor: [20, 35], })} diff --git a/apps/dispatch/app/_components/map/MissionMarkers.tsx b/apps/dispatch/app/_components/map/MissionMarkers.tsx index 92a0de35..ccafa9e5 100644 --- a/apps/dispatch/app/_components/map/MissionMarkers.tsx +++ b/apps/dispatch/app/_components/map/MissionMarkers.tsx @@ -23,7 +23,7 @@ export const MISSION_STATUS_COLORS: Record = draft: "#0092b8", running: "#155dfc", finished: "#155dfc", - attention: "rgb(186,105,0)", + attention: "#ba6900", }; export const MISSION_STATUS_TEXT_COLORS: Record = { diff --git a/apps/dispatch/public/icons/mapMarkerAttention.png b/apps/dispatch/public/icons/mapMarkerAttention.png new file mode 100644 index 0000000000000000000000000000000000000000..69e89af33d15e03e7b06f3995b289b0810cbe124 GIT binary patch literal 9065 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 literal 0 HcmV?d00001 diff --git a/packages/shared-components/components/Changelog.tsx b/packages/shared-components/components/Changelog.tsx index 72f4cd1e..7bf98e85 100644 --- a/packages/shared-components/components/Changelog.tsx +++ b/packages/shared-components/components/Changelog.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { Button, cn } from "@repo/shared-components"; import MDEditor from "@uiw/react-md-editor"; -import { RefreshCw } from "lucide-react"; +import { Check, RefreshCw } from "lucide-react"; import { Changelog } from "@repo/db"; export const ChangelogModal = ({ @@ -50,7 +50,8 @@ export const ChangelogModal = ({