import { RPC_URL } from "@/shared/constants"; import { FocusContext, setFocus, useFocusable } from "@noriginmedia/norigin-spatial-navigation"; import { useRef, useState } from "react"; import FocusDots from "./FocusDots"; import { scrollIntoNearestParent, useDragScroll } from "../scripts/utils"; import { Fullscreen } from "lucide-react"; function Screenshot (data: { path: string; index: number; setFocused?: (index: number) => void; }) { const imageRef = useRef(null); const { ref, focused, focusSelf } = useFocusable({ focusKey: `screenshot-${data.index}`, onEnterPress: () => (ref.current as HTMLElement).requestFullscreen(), onFocus: (e, p, details) => { data.setFocused?.(data.index); scrollIntoNearestParent(ref.current, { behavior: details.instant ? 'instant' : 'smooth' }); } }); 4096; return
focusSelf({ nativeEvent: e.nativeEvent })} src={`${RPC_URL(__HOST__)}${data.path}`} loading="lazy" />
imageRef.current?.requestFullscreen()}>
; } export default function Screenshots (data: { screenshots: string[]; } & FocusParams) { const scrollRef = useRef(null); const { ref, focusKey } = useFocusable({ focusKey: 'screenshot-list', onFocus: (e, p, details) => { data.onFocus?.(focusKey, ref.current, details); } }); useDragScroll(scrollRef); return
{data.screenshots.map((s, i) => )}
`screenshot-${i}`)} />
; }