/** * Schnellansicht einer Übung aus dem Katalog (ohne die Planungsseite zu verlassen). */ import React, { useEffect, useState } from 'react' import { Link } from 'react-router-dom' import api from '../utils/api' import { sanitizeTrainerHtml } from '../utils/htmlUtils' function HtmlBlock({ html, className = '' }) { if (!html || !String(html).trim()) return null const safe = sanitizeTrainerHtml(html) return (
) } function TagMini({ exercise }) { const parts = [] ;(exercise.focus_areas || []).slice(0, 5).forEach((f) => { parts.push(f.name) }) if (parts.length === 0) return null return (Laden…
{err}
} {!loading && exercise && ( <> {variant ? (