import React, { useState, useEffect } from 'react'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { FocusContext, useFocusable, setFocus } from '@noriginmedia/norigin-spatial-navigation'; import { CollectionModal } from './CollectionModal'; import { rommApiClient, Platform, Game } from '../api/client'; import { useInputMode } from '../context/InputModeContext'; interface FocusableItemProps { onFocus: () => void; onEnterPress?: () => void; children: (focused: boolean) => React.ReactNode; className?: string; focusKey?: string; scrollOptions?: ScrollIntoViewOptions; active?: boolean; onClick?: () => void; } const FocusableItem = ({ onFocus, onEnterPress, onClick, children, className, focusKey, scrollOptions, active }: FocusableItemProps) => { const { mode } = useInputMode(); const { ref, focused: rawFocused, focusKey: internalFocusKey } = useFocusable({ onFocus, onEnterPress, focusKey }); const focused = mode !== 'mouse' ? rawFocused : false; useEffect(() => { if (mode !== 'mouse' && (focused || active) && ref.current) { if (scrollOptions) { ref.current.scrollIntoView(scrollOptions); } else { ref.current.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' }); } } }, [focused, active, mode, scrollOptions]); return (
{detailsQuery.data.summary || "This title does not have a comprehensive analysis in our local database yet. Our researchers are working to archive more metadata for this specific entry."}
Target selection required