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 }) => (
+
+
+
{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