import React from 'react' import { resolveExerciseMediaFileUrl } from '../utils/exerciseMediaUrl' import { sanitizeInlineMediaSize } from '../constants/inlineExerciseMedia' /** * Ein ausgeliefertes exercise_media für Übungslisten (Liste + Inline gleiche Darstellung). * @param {{ media: object, exerciseId: number, layoutSize?: string }} props */ export default function ExerciseMediaEmbed({ exerciseId, media, layoutSize = 'medium' }) { const sz = sanitizeInlineMediaSize(layoutSize) const box = sz === 'small' ? { maxWidth: 'min(280px, 33vw)', marginTop: '0.5rem' } : sz === 'full' ? { maxWidth: '100%', marginTop: '0.5rem' } : { maxWidth: 'min(560px, 85vw)', marginTop: '0.5rem' } if (!media || exerciseId == null) return null if (media.asset_legal_hold_active) { return (
Medium nicht verfügbar (gesperrt)
) } if (media.embed_url) { return (
{media.title?.trim() || media.embed_url} {media.embed_platform && ( ({media.embed_platform}) )}
) } const src = resolveExerciseMediaFileUrl(exerciseId, media) if (!src) return null if (media.media_type === 'image' || (media.mime_type && media.mime_type.startsWith('image/'))) { return (
{media.title
) } if (media.media_type === 'video' || (media.mime_type && media.mime_type.startsWith('video/'))) { return (
) } return (
{media.title || media.original_filename || 'Datei öffnen'}
) }