From adc11ec647b7b21acd76db9a67140a1b47162760 Mon Sep 17 00:00:00 2001 From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com> Date: Fri, 18 Jul 2025 17:46:28 -0700 Subject: [PATCH] fixed extimatedLoggoff time --- .../socket-events/connect-dispatch.ts | 7 +-- .../socket-events/connect-pilot.ts | 6 +- .../navbar/_components/Connection.tsx | 22 +++++--- .../navbar/_components/Connection.tsx | 21 ++++--- .../app/_components/left/BugReport.tsx | 4 +- .../map/_components/AircraftMarkerTabs.tsx | 56 +++++++++---------- .../app/_helpers/liveKitEventHandler.ts | 3 - apps/dispatch/app/_store/audioStore.ts | 1 - packages/shared-components/helper/dates.ts | 1 + 9 files changed, 61 insertions(+), 60 deletions(-) diff --git a/apps/dispatch-server/socket-events/connect-dispatch.ts b/apps/dispatch-server/socket-events/connect-dispatch.ts index ddd6528c..f8e7784d 100644 --- a/apps/dispatch-server/socket-events/connect-dispatch.ts +++ b/apps/dispatch-server/socket-events/connect-dispatch.ts @@ -45,15 +45,10 @@ export const handleConnectDispatch = }); } - const [logoffHours, logoffMinutes] = logoffTime.split(":").map(Number); - const connectedDispatcherEntry = await prisma.connectedDispatcher.create({ data: { publicUser: getPublicUser(user) as any, - esimatedLogoutTime: - logoffHours !== undefined && logoffMinutes !== undefined - ? getNextDateWithTime(logoffHours, logoffMinutes) - : null, + esimatedLogoutTime: logoffTime, lastHeartbeat: new Date().toISOString(), userId: user.id, zone: selectedZone, diff --git a/apps/dispatch-server/socket-events/connect-pilot.ts b/apps/dispatch-server/socket-events/connect-pilot.ts index 0f9b4118..ff430d2f 100644 --- a/apps/dispatch-server/socket-events/connect-pilot.ts +++ b/apps/dispatch-server/socket-events/connect-pilot.ts @@ -73,15 +73,11 @@ export const handleConnectPilot = } const randomPos = debug ? getRandomGermanPosition() : undefined; - const [logoffHours, logoffMinutes] = logoffTime.split(":").map(Number); const connectedAircraftEntry = await prisma.connectedAircraft.create({ data: { publicUser: getPublicUser(user) as any, - esimatedLogoutTime: - logoffHours !== undefined && logoffMinutes !== undefined - ? getNextDateWithTime(logoffHours, logoffMinutes) - : null, + esimatedLogoutTime: logoffTime, userId: userId, stationId: parseInt(stationId), lastHeartbeat: debug ? nowPlus2h.toISOString() : undefined, diff --git a/apps/dispatch/app/(app)/dispatch/_components/navbar/_components/Connection.tsx b/apps/dispatch/app/(app)/dispatch/_components/navbar/_components/Connection.tsx index 2bb6bbab..c7fe631c 100644 --- a/apps/dispatch/app/(app)/dispatch/_components/navbar/_components/Connection.tsx +++ b/apps/dispatch/app/(app)/dispatch/_components/navbar/_components/Connection.tsx @@ -31,9 +31,9 @@ export const ConnectionBtn = () => { if (!uid) return null; return ( -
+
{connection.message.length > 0 && ( - {connection.message} + {connection.message} )} {connection.status == "connected" ? ( @@ -63,11 +63,11 @@ export const ConnectionBtn = () => {
{connection.status == "connected" ? ( -

+

Verbunden als <{connection.selectedZone}>

) : ( -

Als Disponent anmelden

+

Als Disponent anmelden

)}
-
-
+
+ {connection.status == "connected" ? ( <> @@ -130,7 +130,15 @@ export const ConnectionBtn = () => { type="submit" onSubmit={() => false} onClick={() => { - connection.connect(uid, form.selectedZone, form.logoffTime); + const [logoffHours, logoffMinutes] = + form.logoffTime?.split(":").map(Number) || []; + connection.connect( + uid, + form.selectedZone, + form.logoffTime && logoffHours !== undefined && logoffMinutes !== undefined + ? getNextDateWithTime(logoffHours, logoffMinutes).toISOString() + : "", + ); }} className="btn btn-soft btn-info" > diff --git a/apps/dispatch/app/(app)/pilot/_components/navbar/_components/Connection.tsx b/apps/dispatch/app/(app)/pilot/_components/navbar/_components/Connection.tsx index 09258ea9..1c62e068 100644 --- a/apps/dispatch/app/(app)/pilot/_components/navbar/_components/Connection.tsx +++ b/apps/dispatch/app/(app)/pilot/_components/navbar/_components/Connection.tsx @@ -63,9 +63,9 @@ export const ConnectionBtn = () => { const uid = session.data?.user?.id; if (!uid) return null; return ( -
+
{connection.message.length > 0 && ( - {connection.message} + {connection.message} )} {connection.status == "connected" ? ( @@ -95,12 +95,12 @@ export const ConnectionBtn = () => {
{connection.status == "connected" ? ( -

+

Verbunden als{" "} <{connection.selectedStation?.bosCallsign}>

) : ( -

Als Pilot anmelden

+

Als Pilot anmelden

)} {connection.status !== "connected" && (
@@ -135,7 +135,7 @@ export const ConnectionBtn = () => { />
)} -
+
)} -
- +
+ {connection.status == "connected" ? ( <> @@ -220,10 +220,15 @@ export const ConnectionBtn = () => { station.id === parseInt(form.selectedStationId?.toString() || ""), ); if (selectedStation) { + const [logoffHours, logoffMinutes] = + form.logoffTime?.split(":").map(Number) || []; + await connection.connect( uid, form.selectedStationId?.toString() || "", - form.logoffTime || "", + form.logoffTime && logoffHours !== undefined && logoffMinutes !== undefined + ? getNextDateWithTime(logoffHours, logoffMinutes).toISOString() + : "", selectedStation, session.data!.user, form.debugPosition, diff --git a/apps/dispatch/app/_components/left/BugReport.tsx b/apps/dispatch/app/_components/left/BugReport.tsx index 7f207153..25c79bb3 100644 --- a/apps/dispatch/app/_components/left/BugReport.tsx +++ b/apps/dispatch/app/_components/left/BugReport.tsx @@ -5,11 +5,11 @@ export const BugReport = () => { ); diff --git a/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx b/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx index 3eafedaf..42c1fdf5 100644 --- a/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx +++ b/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx @@ -64,9 +64,9 @@ const FMSStatusHistory = ({ return (
    -
  • -

    - {aircraftUser.fullName} ({aircraftUser.publicId}){" "} +

  • +

    + {aircraftUser.fullName} ({aircraftUser.publicId}){" "} {(() => { const badges = aircraftUser.badges .filter((b) => b.startsWith("P") && b.length == 2) @@ -96,12 +96,12 @@ const FMSStatusHistory = ({

-
+
    {log.map((entry, index) => (
  • -
    +
    +
    {Array.from({ length: 9 }, (_, i) => (i + 1).toString()) .filter((status) => status !== "5") // Exclude status 5 .map((status) => ( @@ -154,7 +154,7 @@ const FMSStatusSelector = ({ disabled={!dispatcherConnected} key={status} className={cn( - "flex justify-center items-center min-w-13 min-h-13 cursor-pointer text-4xl font-bold", + "min-w-13 min-h-13 flex cursor-pointer items-center justify-center text-4xl font-bold", !dispatcherConnected && "cursor-not-allowed", )} style={{ @@ -187,13 +187,13 @@ const FMSStatusSelector = ({ ))}
    -
    +
    {["E", "C", "F", "J", "L", "c", "d", "h", "o", "u"].map((status) => ( ) : ( -
    +
    )} -
      +
        {log.map((entry, index) => { const sdsEntry = entry as MissionSdsLog; return ( @@ -475,7 +475,7 @@ const SDSTab = ({ })} +

        Kein SDS-Verlauf verfügbar

        )} diff --git a/apps/dispatch/app/_helpers/liveKitEventHandler.ts b/apps/dispatch/app/_helpers/liveKitEventHandler.ts index 43004d2a..b26f6f1a 100644 --- a/apps/dispatch/app/_helpers/liveKitEventHandler.ts +++ b/apps/dispatch/app/_helpers/liveKitEventHandler.ts @@ -25,9 +25,6 @@ export const handleTrackSubscribed = ( useAudioStore.getState().addSpeakingParticipant(participant); element.volume = useAudioStore.getState().settings.radioVolume; }); - track.on("unmuted", () => { - useAudioStore.getState().addSpeakingParticipant(participant); - }); } track.on("muted", () => { diff --git a/apps/dispatch/app/_store/audioStore.ts b/apps/dispatch/app/_store/audioStore.ts index f5b36310..bed83a18 100644 --- a/apps/dispatch/app/_store/audioStore.ts +++ b/apps/dispatch/app/_store/audioStore.ts @@ -108,7 +108,6 @@ export const useAudioStore = create((set, get) => ({ ) { const { room, disconnect, connect } = get(); const role = room?.localParticipant.attributes.role; - console.log(role); if (room?.name || role) { disconnect(); connect(room?.name || "", role || "user"); diff --git a/packages/shared-components/helper/dates.ts b/packages/shared-components/helper/dates.ts index 551d2e63..44aa2511 100644 --- a/packages/shared-components/helper/dates.ts +++ b/packages/shared-components/helper/dates.ts @@ -1,3 +1,4 @@ +"use client"; import { set, isBefore, addDays } from "date-fns"; export function getNextDateWithTime(targetHour: number, targetMinute: number): Date {