import "./SpotlightMedia.css"; import { useMemo, useState } from "react"; import Modal from "Element/Modal"; import Icon from "Icons/Icon"; import { ProxyImg } from "Element/ProxyImg"; interface SpotlightMediaProps { images: Array; idx: number; onClose: () => void; } export function SpotlightMedia(props: SpotlightMediaProps) { const [idx, setIdx] = useState(props.idx); const image = useMemo(() => { return props.images.at(idx % props.images.length); }, [idx, props]); function dec() { setIdx(s => { if (s - 1 === -1) { return props.images.length - 1; } else { return s - 1; } }); } function inc() { setIdx(s => { if (s + 1 === props.images.length) { return 0; } else { return s + 1; } }); } return (
{idx + 1}/{props.images.length}
{props.images.length > 1 && ( <> dec()} /> inc()} /> )}
); }