"use client"; import { ExclamationTriangleIcon, PaperPlaneIcon } from "@radix-ui/react-icons"; import { useSession } from "next-auth/react"; import { useEffect, useState } from "react"; import { cn } from "@repo/shared-components"; import { toast } from "react-hot-toast"; import { useLeftMenuStore } from "_store/leftMenuStore"; import { asPublicUser } from "@repo/db"; import { useQuery } from "@tanstack/react-query"; import { getConnectedDispatcherAPI } from "_querys/dispatcher"; import { sendReportAPI } from "_querys/report"; import { getConnectedAircraftsAPI } from "_querys/aircrafts"; import { useDispatchConnectionStore } from "_store/dispatch/connectionStore"; import { usePilotConnectionStore } from "_store/pilot/connectionStore"; export const Report = () => { const { setChatOpen, setReportTabOpen, reportTabOpen, setOwnId } = useLeftMenuStore(); const [sending, setSending] = useState(false); const session = useSession(); const [selectedPlayer, setSelectedPlayer] = useState("default"); const [message, setMessage] = useState(""); const dispatcherConnected = useDispatchConnectionStore((state) => state.status === "connected"); const pilotConnected = usePilotConnectionStore((state) => state.status === "connected"); useEffect(() => { if (!session.data?.user.id) return; setOwnId(session.data.user.id); }, [session, setOwnId]); const { data: dispatcher } = useQuery({ queryKey: ["dispatcher"], queryFn: () => getConnectedDispatcherAPI(), refetchInterval: 10000, }); const { data: aircrafts } = useQuery({ queryKey: ["aircrafts"], queryFn: () => getConnectedAircraftsAPI(), refetchInterval: 10000, }); const filteredDispatcher = dispatcher?.filter((d) => d.userId !== session.data?.user.id); const filteredAircrafts = aircrafts?.filter((a) => a.userId !== session.data?.user.id); const btnActive = pilotConnected || dispatcherConnected; useEffect(() => { if (!btnActive) { setReportTabOpen(false); } }, [btnActive, setReportTabOpen]); return (
{reportTabOpen && (

Report senden

)}
); };