diff --git a/apps/dispatch/app/_store/dispatch/connectionStore.ts b/apps/dispatch/app/_store/dispatch/connectionStore.ts index daf7f225..9c4eef98 100644 --- a/apps/dispatch/app/_store/dispatch/connectionStore.ts +++ b/apps/dispatch/app/_store/dispatch/connectionStore.ts @@ -23,13 +23,10 @@ export const useDispatchConnectionStore = create((set) => ({ new Promise((resolve) => { set({ status: "connecting", message: "" }); dispatchSocket.auth = { uid }; - set({ selectedZone }); + set({ selectedZone, logoffTime }); dispatchSocket.connect(); + dispatchSocket.once("connect", () => { - dispatchSocket.emit("connect-dispatch", { - logoffTime, - selectedZone, - }); resolve(); }); }), @@ -39,6 +36,12 @@ export const useDispatchConnectionStore = create((set) => ({ })); dispatchSocket.on("connect", () => { + const { logoffTime, selectedZone } = useDispatchConnectionStore.getState(); + + dispatchSocket.emit("connect-dispatch", { + logoffTime, + selectedZone, + }); useDispatchConnectionStore.setState({ status: "connected", message: "" }); }); @@ -61,11 +64,4 @@ dispatchSocket.on("force-disconnect", (reason: string) => { }); }); -dispatchSocket.on("reconnect", () => { - const { logoffTime, selectedZone } = useDispatchConnectionStore.getState(); - - dispatchSocket.emit("connect-dispatch", { - logoffTime, - selectedZone, - }); -}); +dispatchSocket.on("reconnect", () => {}); diff --git a/apps/dispatch/app/_store/pilot/connectionStore.ts b/apps/dispatch/app/_store/pilot/connectionStore.ts index 4e8e49d5..7c5cfca8 100644 --- a/apps/dispatch/app/_store/pilot/connectionStore.ts +++ b/apps/dispatch/app/_store/pilot/connectionStore.ts @@ -7,6 +7,7 @@ import { useDmeStore } from "_store/pilot/dmeStore"; interface ConnectionStore { status: "connected" | "disconnected" | "connecting" | "error"; message: string; + logoffTime: string; selectedStation: Station | null; connectedAircraft: ConnectedAircraft | null; activeMission: @@ -27,12 +28,18 @@ interface ConnectionStore { export const usePilotConnectionStore = create((set) => ({ status: "disconnected", message: "", + logoffTime: "", selectedStation: null, connectedAircraft: null, activeMission: null, connect: async (uid, stationId, logoffTime, station, user) => new Promise((resolve) => { - set({ status: "connecting", message: "", selectedStation: station }); + set({ + status: "connecting", + message: "", + selectedStation: station, + logoffTime, + }); pilotSocket.auth = { uid }; pilotSocket.connect(); @@ -42,10 +49,7 @@ export const usePilotConnectionStore = create((set) => ({ station, user, }); - pilotSocket.emit("connect-pilot", { - logoffTime, - stationId, - }); + resolve(); }); }), @@ -55,8 +59,14 @@ export const usePilotConnectionStore = create((set) => ({ })); pilotSocket.on("connect", () => { - dispatchSocket.disconnect(); usePilotConnectionStore.setState({ status: "connected", message: "" }); + const { logoffTime, selectedStation } = usePilotConnectionStore.getState(); + dispatchSocket.disconnect(); + + pilotSocket.emit("connect-pilot", { + logoffTime, + stationId: selectedStation?.id, + }); }); pilotSocket.on("connect_error", (err) => { diff --git a/grafana/grafana.db b/grafana/grafana.db index b32f901d..be84e9e4 100644 Binary files a/grafana/grafana.db and b/grafana/grafana.db differ