@skyvexsoftware/stratos-sdk 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -107,34 +107,26 @@ export function useTrackingSession() {
|
|
|
107
107
|
setElapsedTime(flight?.elapsedMs ?? 0);
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const interval = setInterval(tick, 1000);
|
|
110
|
+
// Server broadcasts elapsedMs every ~15s. Between broadcasts,
|
|
111
|
+
// tick locally at 1x to keep the UI smooth. The next broadcast
|
|
112
|
+
// corrects any drift (sim-rate-adjusted time is already baked
|
|
113
|
+
// into elapsedMs by the server).
|
|
114
|
+
const serverElapsed = flight?.elapsedMs ?? 0;
|
|
115
|
+
const isPaused = flight?.status === "paused";
|
|
116
|
+
const timeCaptureStarted = flight?.timeCaptureStartAt !== null;
|
|
117
|
+
// Don't interpolate until time capture has started — timer should
|
|
118
|
+
// stay at 0 while on the ground before pushback/takeoff.
|
|
119
|
+
if (isPaused || !timeCaptureStarted) {
|
|
120
|
+
setElapsedTime(serverElapsed);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const broadcastTime = Date.now();
|
|
124
|
+
setElapsedTime(serverElapsed);
|
|
125
|
+
const interval = setInterval(() => {
|
|
126
|
+
setElapsedTime(serverElapsed + (Date.now() - broadcastTime));
|
|
127
|
+
}, 1000);
|
|
129
128
|
return () => clearInterval(interval);
|
|
130
|
-
}, [
|
|
131
|
-
flight?.timeCaptureStartAt,
|
|
132
|
-
flight?.timeCaptureEndAt,
|
|
133
|
-
flight?.totalPausedMs,
|
|
134
|
-
flight?.status,
|
|
135
|
-
flight?.pausedAt,
|
|
136
|
-
isActive,
|
|
137
|
-
]);
|
|
129
|
+
}, [flight?.elapsedMs, flight?.status, flight?.timeCaptureStartAt, isActive]);
|
|
138
130
|
return {
|
|
139
131
|
isTracking: isActive,
|
|
140
132
|
isPaused: flight?.status === "paused",
|