import { createFileRoute, useSearch } from '@tanstack/react-router'; import { Joystick } from 'lucide-react'; import { useContext, useEffect } from 'react'; import { FocusContext, getCurrentFocusKey, useFocusable } from '@noriginmedia/norigin-spatial-navigation'; import { StoreEmulatorCard } from '@/mainview/components/store/StoreEmulatorCard'; import { StoreContext } from '@/mainview/scripts/contexts'; import { GetFocusedElement } from '@/mainview/scripts/spatialNavigation'; import { useQuery } from '@tanstack/react-query'; import { storeEmulatorsQuery } from '@queries/store'; export const Route = createFileRoute('/store/tab/emulators')({ component: RouteComponent, }); function RouteComponent () { const { focus } = useSearch({ from: '/store/tab' }); const { ref, focusKey, focusSelf } = useFocusable({ focusKey: "main-area", preferredChildFocusKey: focus }); const storeContext = useContext(StoreContext); const { data: emulators } = useQuery(storeEmulatorsQuery); useEffect(() => { if (focus && !GetFocusedElement(getCurrentFocusKey())) { focusSelf({ instant: true }); } }, [focus]); return <>

Emulators

{/* Cards */}
{emulators?.map((data) => ( { node.scrollIntoView({ behavior: details.instant ? 'instant' : 'smooth', block: 'center' }); storeContext.prefetchDetails('emulator', 'store', id); }} onSelect={(id, focus) => storeContext.showDetails('emulator', 'store', id, focus)} /> )) ?? Array.from({ length: 10 }).map((_, i) =>
)}
; }