/** * Voller Katalog-Inhalt einer Übung (Lesemodus für Coach/Mobile). */ import React from 'react' import { Link } from 'react-router-dom' import { sanitizeTrainerHtml } from '../utils/htmlUtils' import { resolveExerciseMediaFileUrl } from '../utils/exerciseMediaUrl' function HtmlBlock({ html, className = '' }) { if (!html || !String(html).trim()) return null const safe = sanitizeTrainerHtml(html) return (
) } function MediaBlock({ media, exerciseId }) { if (media.embed_url) { return (
{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