feat: Implement 'My Courses' dashboard, including course cards, classroom learning, and quiz pages.

This commit is contained in:
supalerk-ar66 2026-01-21 17:03:09 +07:00
parent fc3e2820cc
commit f6bbd60f2b
5 changed files with 111 additions and 74 deletions

View file

@ -7,6 +7,8 @@
*/
interface CourseCardProps {
/** Course ID for navigation */
id?: number
/** Course Title */
title: string | { th: string; en: string }
/** Difficulty Level (Beginner, Intermediate, etc.) */
@ -124,12 +126,12 @@ const displayDescription = computed(() => getLocalizedText(props.description))
{{ $t('menu.viewDetails') }}
</button>
<NuxtLink v-if="showContinue" to="/classroom/learning" class="btn-premium-primary w-full mt-auto shadow-lg shadow-blue-600/20">
<NuxtLink v-if="showContinue" :to="`/classroom/learning?course_id=${id}`" class="btn-premium-primary w-full mt-auto shadow-lg shadow-blue-600/20">
{{ $t('course.continueLearning') }}
</NuxtLink>
<div v-if="completed && (showCertificate || showStudyAgain)" class="flex flex-col gap-2 mt-auto">
<NuxtLink v-if="showStudyAgain" to="/classroom/learning" class="btn-premium-primary w-full dark:!text-white">
<NuxtLink v-if="showStudyAgain" :to="`/classroom/learning?course_id=${id}`" class="btn-premium-primary w-full dark:!text-white">
{{ $t('course.studyAgain') }}
</NuxtLink>
<button v-if="showCertificate" class="btn-premium-success w-full shadow-lg shadow-emerald-600/20" @click="emit('viewCertificate')">