Documentation Index
Fetch the complete documentation index at: https://docs.skyvexsoftware.com/llms.txt
Use this file to discover all available pages before exploring further.
useFlightPhase subscribes to flight phase changes via Socket.io and keeps the TanStack Query cache in sync. It only re-renders when the phase actually changes — not on every simulator data tick.
On mount it hydrates from GET /api/simulator/flight-phase/snapshot, then listens for flight:phase Socket.io events.
Import
Signature
Parameters
| Parameter | Type | Description |
|---|---|---|
options.select | (snapshot: FlightPhaseSnapshot) => TSelected | Selector function. The component only re-renders when the selected value changes. |
FlightPhaseSnapshot
PendingPhaseTransition
When the flight state manager is about to transition to a new phase (waiting for the debounce timer to expire), this object describes the pending change:
FlightPhase enum
GO_AROUND, REJECTED_TAKE_OFF) can interrupt this sequence.
The ARRIVED to DEBOARDING transition is triggered when all engines are off (using the composite engine*On fields from FlightData, which check N1/RPM thresholds). DEBOARDING is sticky — once entered, it does not transition to another phase.
Usage
Selector pattern
Subscribe only to the current phase string — the component will not re-render ontrends or pendingTransition changes:
Detecting phase transitions
Notes
- The hook uses
staleTime: Infinity— Socket.io pushes are the sole update mechanism after the initial REST hydration. There is no polling. - Phase transitions have built-in debounce delays in the flight state manager to prevent rapid flapping.
- If you need the full tracking session state (isTracking, elapsedTime, etc.), use
useTrackingSessioninstead.