import { useMemo } from 'react'; import { useControlSystem } from '../../controls/index.js'; import { formatKeyLabel } from '../../controls/keymapUtils.js'; import NicknameForm from '../NicknameForm/index.jsx'; import SocialButton from '../SocialButton/index.jsx'; import KeyPill from '../vip/VipAudioUploadCard/KeyPill.jsx'; import { useSessionSelector } from '../../context/SessionContext.jsx'; function ControlRow({ label, keyLabel }) { return (
{label}
); } function DesktopQuickstart({ keymap }) { return (

1. Press "Start Driving" put your rover into driving mode.

2. Use the drive controls to move your rover:

3. When done, please dock your rover! Line up with the dock and press "Dock and Charge".

); } function MobileQuickstart() { return (

1. Press "Start Driving" put your rover into driving mode.

2. Touch and hold in Joystick area to move.

3. Use the other column for motor, horn, and camera controls.

4. When done, please dock your rover! Line up with the dock and press "Dock and Charge".

); } export default function QuickstartOverlay({ visible, layout, showOnLoad, onToggleShowOnLoad, onOpenHelp, onClose, }) { const { state } = useControlSystem(); const isDesktop = layout === 'desktop'; const discordUrl = useSessionSelector((sessionState) => { const socials = sessionState.session?.socials || []; const entry = socials.find((item) => { const key = String(item?.id || item?.label || '').toLowerCase(); return key === 'discord'; }); return entry?.url || sessionState.session?.discord?.invite || null; }); const keymap = useMemo(() => state?.keymap || {}, [state?.keymap]); if (!visible) return null; const handleCheckbox = (event) => { const keepShowing = !event.target.checked; onToggleShowOnLoad?.(keepShowing); }; return (
Welcome! To get started: {/* */}
{isDesktop ? : }
{/* {!isDesktop?
: null} */}

Next...

Set your nickname

Nicknames are assigned randomly by default, you can change yours here.

Join our Discord server!

We have an active and welcoming community :3

{/* */}
); }