import { useFocusable, FocusContext, } from "@noriginmedia/norigin-spatial-navigation"; import { CircleQuestionMark, SearchAlert } from "lucide-react"; import { GamePadButtonCode, useShortcuts } from "@/mainview/scripts/shortcuts"; import { RPC_URL } from "@/shared/constants"; import { FOCUS_KEYS } from "@/mainview/scripts/types"; import { oneShot } from "@/mainview/scripts/audio/audio"; import { FrontEndEmulator } from "@simeonradivoev/gameflow-sdk/shared"; // ── Single missing-emulator card ─────────────────────────────────────────── interface MissingCardProps { emulator: FrontEndEmulator; onSelect?: (em: FrontEndEmulator, focusKey: string) => void; } function MissingCard ({ emulator: em, onSelect }: MissingCardProps) { const handleSelect = () => { onSelect?.(em, focusKey); oneShot('click'); }; const { ref, focusKey } = useFocusable({ focusKey: FOCUS_KEYS.MISSING_CARD(em.name), onEnterPress: handleSelect, }); useShortcuts(focusKey, () => [{ button: GamePadButtonCode.A, label: "Details", action: handleSelect }], [handleSelect]); return (
{em.name}
{em.systems?.map(s => s.name).join(',')}