'use client'; import type { Action } from '@/game/engine'; import { Button } from './ui/button'; /** This is the public opportunity projected for this viewer, independent of * whether any player holds a particular card. */ export type SaphoStationPriorityView = { event: string; canPass: boolean; waiting: boolean; }; export type SaphoStationPriorityProps = { game: { saphoStationPriority: SaphoStationPriorityView | null }; act: (action: Action) => void; busy: boolean; }; /** Keep the opportunity visible until the server advances the Station order. * Actual order-changing choices remain in the player's own card controls. */ export function SaphoStationPriority({ game, act, busy }: SaphoStationPriorityProps) { const view = game.saphoStationPriority; if (!view) return null; const event = view.event; const canAct = () => !busy && game.saphoStationPriority === view && view.event === event && typeof event === 'string' && event.length > 0 && view.canPass; return

Testing Station priority

Before the next Testing Station choice, players may use an available order change from their own hand. Already completed choices stay finished.

{view.canPass ? :

{view.waiting ? 'Waiting for the other players to continue.' : 'Your response has been recorded.'}

}
; }