/** * Kachelvorschau: Video nutzt ersten Frame (metadata), Bild = img, Embed = Label. */ import React from 'react' import { resolveExerciseMediaFileUrl } from '../utils/exerciseMediaUrl' export default function ExerciseMediaThumbTile({ exerciseId, media, onOpenPreview, size = 72 }) { const src = !media.embed_url ? resolveExerciseMediaFileUrl(exerciseId, media) : null const commonStyle = { width: '100%', height: '100%', objectFit: 'cover', } if (media.asset_legal_hold_active) { return (
Gesperrt
) } return (
onOpenPreview(media)} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault() onOpenPreview(media) } }} style={{ width: size, height: size, flexShrink: 0, borderRadius: '8px', overflow: 'hidden', background: 'var(--surface2, rgba(127,127,127,0.12))', border: '1px solid var(--border)', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', }} > {media.embed_url ? ( {media.embed_platform || 'Embed'} ) : (media.mime_type?.startsWith('image/') || media.media_type === 'image') && src ? ( ) : (media.mime_type?.startsWith('video/') || media.media_type === 'video') && src ? (
) }