import React from 'react' import type { ExamplesData } from './Examples' import { groupByNameAndVariant } from './galleryUtils' import ExampleMetadata from './ExampleMetadata' import ExampleDetailsSection from './ExampleDetailsSection' import ExampleVariantSelector from './ExampleVariantSelector' interface GalleryProps { selectedModel: string selectedAttack: string examples: { [model: string]: { [attack: string]: ExamplesData[] } } } const VideoGallery: React.FC = ({ selectedModel, selectedAttack, examples }) => { const exampleItems = examples[selectedModel][selectedAttack] const grouped = groupByNameAndVariant(exampleItems) const videoNames = Object.keys(grouped) const [selectedVideo, setSelectedVideo] = React.useState(videoNames[0] || '') const variants = grouped[selectedVideo] || {} const variantKeys = Object.keys(variants) const [selectedVariant, setSelectedVariant] = React.useState(variantKeys[0] || '') React.useEffect(() => { setSelectedVariant(variantKeys[0] || '') }, [selectedVideo]) if (!videoNames.length) { return (
No video examples available. Please select another model and attack.
) } return (
Video Example
{selectedVideo && selectedVariant && variants[selectedVariant] && ( <>
{variants[selectedVariant].video_url && (
)}
) } export default VideoGallery