'use client'; import { useRef } from 'react'; import { MODES, type MapMode } from './modes'; /** Keyboard-navigable radiogroup (←/→ move, space/enter select). */ export function ModeSelector({ mode, onChange }: { mode: MapMode; onChange: (m: MapMode) => void }) { const ref = useRef(null); const onKey = (e: React.KeyboardEvent, i: number) => { let next = i; if (e.key === 'ArrowRight') next = (i + 1) % MODES.length; else if (e.key === 'ArrowLeft') next = (i - 1 + MODES.length) % MODES.length; else if (e.key === 'Home') next = 0; else if (e.key === 'End') next = MODES.length - 1; else return; e.preventDefault(); onChange(MODES[next]!.id); (ref.current?.children[next] as HTMLElement | undefined)?.focus(); }; return (
{MODES.map((m, i) => ( ))}
); }