'use client' import type { TrainingAssignment, ModuleContent, TrainingMedia, InteractiveVideoManifest } from '@/lib/sdk/training/types' import { getMediaStreamURL } from '@/lib/sdk/training/api' import InteractiveVideoPlayer from '@/components/training/InteractiveVideoPlayer' function simpleMarkdownToHtml(md: string): string { return md .replace(/^### (.+)$/gm, '

$1

') .replace(/^## (.+)$/gm, '

$1

') .replace(/^# (.+)$/gm, '

$1

') .replace(/\*\*(.+?)\*\*/g, '$1') .replace(/\*(.+?)\*/g, '$1') .replace(/^- (.+)$/gm, '
  • $1
  • ') .replace(/^(\d+)\. (.+)$/gm, '
  • $2
  • ') .replace(/\n\n/g, '

    ') } interface ContentViewProps { selectedAssignment: TrainingAssignment | null content: ModuleContent | null media: TrainingMedia[] interactiveManifest: InteractiveVideoManifest | null onStartQuiz: () => void onAllCheckpointsPassed: () => void } export function ContentView({ selectedAssignment, content, media, interactiveManifest, onStartQuiz, onAllCheckpointsPassed, }: ContentViewProps) { if (!selectedAssignment) { return
    Waehlen Sie eine Schulung aus dem Tab "Meine Schulungen"
    } return (

    {selectedAssignment.module_title}

    {interactiveManifest && (

    Interaktive Video-Schulung

    Interaktiv
    )} {media.length > 0 && (
    {media.filter(m => m.media_type === 'audio' && m.status === 'completed').map(m => (

    Audio-Schulung

    ))} {media.filter(m => m.media_type === 'video' && m.status === 'completed' && m.generated_by !== 'tts_ffmpeg_interactive').map(m => (

    Video-Schulung

    ))}
    )} {content ? (
    ) : (
    Kein Schulungsinhalt verfuegbar
    )}
    ) }