import { useId, useState } from "react"; import { ArchitectureFigure } from "./ArchitectureFigure"; type Slide = { source: string; alt: string }; export function FigureGallery({ slides }: { slides: Slide[] }) { const [active, setActive] = useState(0); const viewport = useId(); const slide = slides[active]; if (!slide) return null; function move(offset: number) { setActive((current) => (current + offset + slides.length) % slides.length); } return (
{ if ((event.target as HTMLElement).closest("dialog")) return; if (event.key === "ArrowLeft" || event.key === "ArrowRight") { event.preventDefault(); move(event.key === "ArrowLeft" ? -1 : 1); } }} >
{slides.map((item, index) => ( ))}

第 {active + 1} 张,共 {slides.length} 张:{slide.alt}

); }