import { asPublicUser, 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", })}

    )}
    {asPublicUser(d.publicUser).fullName}
    {d.zone}
    {(d.publicUser as unknown as PublicUser).badges .filter((b) => b.startsWith("D")) .map((b) => ( ))}
  • ); })}
); };