import { useSessionSelector } from '../../context/SessionContext.jsx'; import RoverMediaPlayer from '../RoverMediaPlayer/index.jsx'; import { useControlSelector } from '../../controls/index.js'; import { useDriverVideoModePolicy } from '../../hooks/useDriverVideoModePolicy.js'; import TurnsOverlay from '../HudOverlays/TurnsOverlay/index.jsx'; import HudOverlay from '../HudOverlays/HudOverlay/index.jsx'; import ManualDockAssistOverlay from '../HudOverlays/ManualDockAssistOverlay/index.jsx'; import RoverDescriptionOverlay from '../HudOverlays/RoverDescriptionOverlay/index.jsx'; import OvercurrentOverlay from '../HudOverlays/OvercurrentOverlay/index.jsx'; import LowBatteryOverlay from '../HudOverlays/LowBatteryOverlay/index.jsx'; import DriverBottomStrip from '../HudOverlays/DriverBottomStrip/index.jsx'; import HudChatInput from '../HudOverlays/HudChatInput/index.jsx'; import CardFrame from '../CardFrame/index.jsx'; import EmptyDriverVideoNotice from './EmptyDriverVideoNotice.jsx'; export default function DriverVideo({ layoutFormat = 'desktop' }) { const roverId = useSessionSelector((state) => state.session?.assignment?.roverId ?? null); const videoMode = useDriverVideoModePolicy(roverId); const lastControlIntentAt = useControlSelector((control) => control.state.lastControlIntentAt); if (!roverId) { return ( {/* The legacy page keeps its existing muted 4:3 frame while sharing the removal-message behavior with the current video surface. */}
); } const mobileHud = layoutFormat !== 'desktop'; return (
); }