import { useFocusable, FocusContext, } from "@noriginmedia/norigin-spatial-navigation"; import { Button } from "../options/Button"; import useActiveControl from "@/mainview/scripts/gamepads"; import { ChevronRight, 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"; // ── Single missing-emulator card ─────────────────────────────────────────── interface MissingCardProps { emulator: FrontEndEmulator; onSelect?: (id: string, focusKey: string) => void; } function MissingCard ({ emulator: em, onSelect }: MissingCardProps) { const handleSelect = () => { onSelect?.(em.name, 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]); const { isMouse } = useActiveControl(); return (
{em.name}
{em.systems?.map(s => s.name).join(',')}
{em.name}
{isMouse && }