// Training modules function TrainingPage({ persona }) { const [active, setActive] = React.useState(null); const required = TRAININGS.filter(t => t.required); const optional = TRAININGS.filter(t => !t.required); const totalProgress = Math.round(TRAININGS.reduce((a, t) => a + t.progress, 0) / TRAININGS.length); return (
Convoso University

Training & courses

Required compliance training plus optional deep-dives. Progress is saved automatically and you can resume any time.

Overall progress
{totalProgress}%
{TRAININGS.filter(t => t.progress === 100).length} completed · {TRAININGS.filter(t => t.progress > 0 && t.progress < 100).length} in progress · {TRAININGS.filter(t => t.progress === 0).length} not started
setActive(TRAININGS[1])}/>

Required training

Must be completed within 30 days
{required.map(t => setActive(t)}/>)}

Recommended for you

{optional.map(t => setActive(t)}/>)}
{active && setActive(null)}/>}
); } function TrainingCard({ t, onStart }) { const status = t.progress === 100 ? "done" : t.progress > 0 ? "in-progress" : "new"; return (
{t.category}
{t.title}
{status === "done" &&
Completed
}
{t.duration} · {t.lessons} lessons
{t.instructor}
{t.progress === 100 ? "Completed" : t.progress > 0 ? `${t.progress}% · resume` : "Not started"}
); } function FeaturedTraining({ t, onStart }) { return (
{t.category}
Continue where you left off
{t.title}
Lesson 4 of {t.lessons} · {t.instructor}
~10 min remaining
); } function TrainingPlayer({ t, onClose }) { const [lesson, setLesson] = React.useState(Math.floor(t.lessons * (t.progress / 100)) || 0); const lessons = Array.from({ length: t.lessons }, (_, i) => ({ title: [ "Introduction & welcome", "Why this matters at Convoso", "Core principles", "Real-world scenarios", "Common pitfalls to avoid", "Reporting & escalation", "Quiz: knowledge check", "Case study: customer story", "Summary & resources", "Final assessment", "Certificate of completion", ][i] || `Lesson ${i + 1}`, duration: `${4 + (i % 5)} min`, })); return (
e.stopPropagation()}>
{t.category}

{t.title}

{t.category} · Lesson {lesson + 1}
{lessons[lesson].title}
2:14 / {lessons[lesson].duration}
Course outline {lesson + 1} / {t.lessons}
{lessons.map((l, i) => (
setLesson(i)}>
{i < lesson ? : i + 1}
{l.title}
{l.duration}
))}
); } window.TrainingPage = TrainingPage;