diff --git a/frontend/src/components/ExerciseFullContent.jsx b/frontend/src/components/ExerciseFullContent.jsx index 73253b8..288f4d9 100644 --- a/frontend/src/components/ExerciseFullContent.jsx +++ b/frontend/src/components/ExerciseFullContent.jsx @@ -1,5 +1,6 @@ /** * Voller Katalog-Inhalt einer Übung (Lesemodus für Coach/Mobile). + * Optional: geplante Variante (`variantId`) — Beschreibung und Durchführungsänderungen oben. */ import React from 'react' import { Link } from 'react-router-dom' @@ -51,9 +52,9 @@ function metaParts(exercise) { } /** - * @param {{ exercise?: object|null, loading?: boolean, error?: string|null, exerciseId?: number }} props + * @param {{ exercise?: object|null, loading?: boolean, error?: string|null, exerciseId?: number, variantId?: number|string|null }} props */ -export default function ExerciseFullContent({ exercise, loading, error, exerciseId }) { +export default function ExerciseFullContent({ exercise, loading, error, exerciseId, variantId }) { if (loading) { return (
{variant.variant_name || `Variante #${variant.id}`}
+ {variant.description ? ( +diff --git a/frontend/src/pages/TrainingCoachPage.jsx b/frontend/src/pages/TrainingCoachPage.jsx index 1bedf06..56a75c4 100644 --- a/frontend/src/pages/TrainingCoachPage.jsx +++ b/frontend/src/pages/TrainingCoachPage.jsx @@ -400,7 +400,7 @@ export default function TrainingCoachPage() { return () => { cancelled = true } - }, [step, currentEntry?.item?.exercise_id, currentEntry?.item?.item_type]) + }, [step, currentEntry?.item?.exercise_id, currentEntry?.item?.exercise_variant_id, currentEntry?.item?.item_type]) const handleSaveDebrief = async () => { setSaveOk(null) @@ -739,6 +739,7 @@ export default function TrainingCoachPage() { error={catalogError} exercise={catalogExercise} exerciseId={currentEntry?.item?.exercise_id ?? null} + variantId={currentEntry?.item?.exercise_variant_id ?? null} />