import React, { useEffect, useState } from 'react' import { Link, useNavigate, useParams } from 'react-router-dom' import api from '../utils/api' import { sanitizeTrainerHtml } from '../utils/htmlUtils' import { formatSkillLevelSlug } from '../constants/skillLevels' const API_BASE = (import.meta.env.VITE_API_URL || '').replace(/\/$/, '') function resolveMediaUrl(filePath) { if (!filePath) return null if (filePath.startsWith('http://') || filePath.startsWith('https://')) return filePath const p = filePath.startsWith('/') ? filePath : `/${filePath}` return `${API_BASE}${p}` } function HtmlBlock({ html, className = '' }) { if (!html || !String(html).trim()) return null const safe = sanitizeTrainerHtml(html) return (
) } function MediaBlock({ media }) { if (media.embed_url) { return (
{media.embed_url} {media.embed_platform && ( ({media.embed_platform}) )}
) } const src = resolveMediaUrl(media.file_path) 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