From b3bf25632485b5af0e763491abf32efdb4651a26 Mon Sep 17 00:00:00 2001 From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com> Date: Sun, 8 Jun 2025 18:27:45 -0700 Subject: [PATCH] cleanded up ConenctedDispatcher, added modeSwitch to Tracker --- .../_components/navbar/ModeSwitchDropdown.tsx | 5 +- .../pilot/_components/ConnectedDispatcher.tsx | 96 ------------------- apps/dispatch/app/pilot/page.tsx | 9 +- .../_components/ConnectedDispatcher.tsx | 2 +- apps/dispatch/app/tracker/page.tsx | 6 +- 5 files changed, 15 insertions(+), 103 deletions(-) delete mode 100644 apps/dispatch/app/pilot/_components/ConnectedDispatcher.tsx diff --git a/apps/dispatch/app/_components/navbar/ModeSwitchDropdown.tsx b/apps/dispatch/app/_components/navbar/ModeSwitchDropdown.tsx index 3a323a6c..e2c59c3f 100644 --- a/apps/dispatch/app/_components/navbar/ModeSwitchDropdown.tsx +++ b/apps/dispatch/app/_components/navbar/ModeSwitchDropdown.tsx @@ -1,16 +1,17 @@ "use client"; +import { cn } from "_helpers/cn"; import { ArrowLeftRight, Plane, Radar, Workflow } from "lucide-react"; import { useSession } from "next-auth/react"; import Link from "next/link"; import { usePathname } from "next/navigation"; -export default function ModeSwitchDropdown() { +export default function ModeSwitchDropdown({ className }: { className?: string }) { const path = usePathname(); const session = useSession(); return ( -
+
{path.includes("pilot") && "Pilot"} {path.includes("dispatch") && "Leitstelle"} diff --git a/apps/dispatch/app/pilot/_components/ConnectedDispatcher.tsx b/apps/dispatch/app/pilot/_components/ConnectedDispatcher.tsx deleted file mode 100644 index 1138142c..00000000 --- a/apps/dispatch/app/pilot/_components/ConnectedDispatcher.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { BADGES, PublicUser } from "@repo/db"; -import { useQuery } from "@tanstack/react-query"; -import { Badge } from "_components/Badge/Badge"; -import { getConnectedAircraftsAPI } from "_querys/aircrafts"; -import { getConnectedDispatcherAPI } from "_querys/dispatcher"; -import { Plane, Workflow } from "lucide-react"; - -export const ConnectedDispatcher = () => { - const { data: dispatcher } = useQuery({ - queryKey: ["dispatcher"], - queryFn: () => getConnectedDispatcherAPI(), - refetchInterval: 10000, - }); - const { data: aircrafts } = useQuery({ - queryKey: ["aircrafts"], - queryFn: () => getConnectedAircraftsAPI(), - refetchInterval: 10000, - }); - - const connections = (aircrafts?.length || 0) + (dispatcher?.length || 0); - - return ( -
-
-
- - {/*
Kein Disponent Online
*/} -
- - {connections} {connections == 1 ? "Verbundenes Mitglied" : "Verbundene Mitglieder"} - -
-
0 ? "badge-success" : "badge-error" - }`} - > - {dispatcher?.length || 0} -
-
- {aircrafts?.length || 0} -
-
-
-
- {!dispatcher?.length && ( -

Aktuell sind keine Disponenten verbunden

- )} -
    - {dispatcher?.map((d) => { - return ( -
  • -
    -
    -

    - {new Date(d.loginTime).toLocaleTimeString([], { - hour: "2-digit", - minute: "2-digit", - })} -

    -
    - {d.esimatedLogoutTime && ( -
    -

    - {new Date(d.esimatedLogoutTime).toLocaleTimeString([], { - hour: "2-digit", - minute: "2-digit", - })} -

    -
    - )} -
    -
    -
    {(d.publicUser as unknown as PublicUser)?.firstname}
    -
    {d.zone}
    -
    -
    - {(d.publicUser as unknown as PublicUser).badges - .filter((b) => b.startsWith("D")) - .map((b) => ( - - ))} -
    -
  • - ); - })} -
-
-
-
-
- ); -}; diff --git a/apps/dispatch/app/pilot/page.tsx b/apps/dispatch/app/pilot/page.tsx index 30bd704a..d16ad76d 100644 --- a/apps/dispatch/app/pilot/page.tsx +++ b/apps/dispatch/app/pilot/page.tsx @@ -5,7 +5,8 @@ import { Chat } from "../_components/left/Chat"; import { Report } from "../_components/left/Report"; import { Dme } from "pilot/_components/dme/Dme"; import dynamic from "next/dynamic"; -import { ConnectedDispatcher } from "./_components/ConnectedDispatcher"; +import { ConnectedDispatcher } from "tracker/_components/ConnectedDispatcher"; + const Map = dynamic(() => import("../_components/map/Map"), { ssr: false, }); @@ -22,9 +23,11 @@ const DispatchPage = () => {
-
+
- +
+ +
diff --git a/apps/dispatch/app/tracker/_components/ConnectedDispatcher.tsx b/apps/dispatch/app/tracker/_components/ConnectedDispatcher.tsx index b47d3943..b31bbb0d 100644 --- a/apps/dispatch/app/tracker/_components/ConnectedDispatcher.tsx +++ b/apps/dispatch/app/tracker/_components/ConnectedDispatcher.tsx @@ -20,7 +20,7 @@ export const ConnectedDispatcher = () => { const connections = (aircrafts?.length || 0) + (dispatcher?.length || 0); return ( -
+
{/*
Kein Disponent Online
*/} diff --git a/apps/dispatch/app/tracker/page.tsx b/apps/dispatch/app/tracker/page.tsx index b80d841b..d84ee8c3 100644 --- a/apps/dispatch/app/tracker/page.tsx +++ b/apps/dispatch/app/tracker/page.tsx @@ -1,4 +1,5 @@ "use client"; +import ModeSwitchDropdown from "_components/navbar/ModeSwitchDropdown"; import dynamic from "next/dynamic"; import { ConnectedDispatcher } from "tracker/_components/ConnectedDispatcher"; @@ -10,7 +11,10 @@ const Page = () => { return ( <> - +
+ + +
); };