Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | 'use client'
import { createContext, useContext } from 'react'
interface ArcadeSessionStateContextType {
/** Whether authoritative server state has been received at least once */
hasReceivedServerState: boolean
}
/**
* Context for exposing arcade session state signals to parent components.
*
* Game Providers publish hasReceivedServerState here so that framework-level
* components (like GameBreakSpectatorView) can show a loading gate until
* the game has received its initial server state.
*
* Default value is true so that non-spectator usage (normal arcade play)
* works without any wrapping Provider — the gate passes through immediately.
*/
export const ArcadeSessionStateContext = createContext<ArcadeSessionStateContextType>({
hasReceivedServerState: true,
})
export function useArcadeSessionState() {
return useContext(ArcadeSessionStateContext)
}
|