diff --git a/app/[locale]/dashboard/student/courses/[courseId]/page.tsx b/app/[locale]/dashboard/student/courses/[courseId]/page.tsx index 7dedd4a8..1c7fc4ac 100644 --- a/app/[locale]/dashboard/student/courses/[courseId]/page.tsx +++ b/app/[locale]/dashboard/student/courses/[courseId]/page.tsx @@ -10,6 +10,7 @@ import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card' import { Progress } from '@/components/ui/progress' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' +import { cn } from '@/utils' import { createClient } from '@/utils/supabase/server' const ExerciseCard = ({ title, description, difficulty, type, status, courseId, exerciseId, t }) => ( @@ -278,10 +279,14 @@ export default async function CourseStudentPage({ {t('dashboard.student.CourseStudentPage.exams')} - {courseData.data.lessons + {courseData.data.lessons.length > 0 ? courseData.data.lessons .sort((a, b) => a.sequence - b.sequence) .map((lesson) => { const status = lesson.lesson_completions.length > 0 ? 'Completed' : lesson.lessons_ai_task_messages.length > 0 ? 'In Progress' : 'Not Started' @@ -299,13 +304,25 @@ export default async function CourseStudentPage({ t={t} /> ) - })} + } + ) : ( + + )} - {courseData.data.exercises + {courseData.data.exercises.length > 0 ? courseData.data.exercises .map((exercise) => { // if exercise has a completion, it is completed, else if it has a message, it is in progress else not started const status = exercise.exercise_completions?.length > 0 ? 'Completed' : exercise.exercise_messages?.length > 0 ? 'In Progress' : 'Not Started' @@ -323,13 +340,25 @@ export default async function CourseStudentPage({ t={t} /> ) - })} + } + ) : ( + + )} - {courseData.data.exams + {courseData.data.exams.length > 0 ? courseData.data.exams .sort((a, b) => a.sequence - b.sequence) .map((exam) => ( - ))} + )) : ( + + )} ) } + +const NoDataPlaceholder = ({ iconSrc, iconAlt, message, description }) => ( +
+ {iconAlt} +

{message}

+

{description}

+
+) diff --git a/app/locales/en/views.ts b/app/locales/en/views.ts index 9354bff3..7fde0398 100644 --- a/app/locales/en/views.ts +++ b/app/locales/en/views.ts @@ -146,6 +146,12 @@ export default { exercisesCompleted: 'Exercises Completed', inProgress: 'In Progress', continue: 'Continue', + noExercises: 'No exercises available', + noExercisesDescription: 'There are no exercises available for this lesson.', + noLessons: 'No lessons available', + noLessonsDescription: 'There are no lessons available for this course.', + noExams: 'No exams available', + noExamsDescription: 'There are no exams available for this course.', }, LessonPage: { description: 'View and track your progress through the course lessons.', diff --git a/app/locales/es/views.ts b/app/locales/es/views.ts index 41552d0f..bfef57bc 100644 --- a/app/locales/es/views.ts +++ b/app/locales/es/views.ts @@ -147,6 +147,12 @@ export default { exercisesCompleted: 'Ejercicios completados', inProgress: 'En progreso', continue: 'Continuar', + noExercises: 'No hay ejercicios disponibles', + noExercisesDescription: 'No hay ejercicios disponibles para este curso.', + noLessons: 'No hay lecciones disponibles', + noLessonsDescription: 'No hay lecciones disponibles para este curso.', + noExams: 'No hay exámenes disponibles', + noExamsDescription: 'No hay exámenes disponibles para este curso.', }, LessonPage: { description: 'Ver y realizar un seguimiento de tu progreso a través de la lección.', diff --git a/public/img/404(2).jpeg b/public/img/404(2).jpeg new file mode 100644 index 00000000..a9a26394 Binary files /dev/null and b/public/img/404(2).jpeg differ