import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Progress } from "@/components/ui/progress"; import { BookOpen, ClipboardList, BarChart3, Calendar, ArrowRight, Play } from "lucide-react"; import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { useMyEnrolledCourses, useGrades } from "@/hooks/queries"; import { useAuth } from "@/contexts/AuthContext"; import AiStudyCoach from "@/components/ai/AiStudyCoach"; import AiTipBanner from "@/components/ai/AiTipBanner"; export default function StudentDashboard() { const { user } = useAuth(); const { t } = useTranslation(); const { data: enrolledData, isLoading: lc } = useMyEnrolledCourses(); const { data: gradesData, isLoading: lg } = useGrades(); const myCourses = enrolledData?.items ?? []; const gradeRecords = gradesData ?? []; if (lc || lg) return
{t("studentDash.subtitle")}
{s.label}
{s.value}
{t("studentDash.noEnrolledCourses")}
) : myCourses.map((c) => ({c.title || c.name}
{t("studentDash.chaptersMaterials", { chapters: c.chapter_count, materials: c.total_materials })}
{c.progress > 0 ? t("studentDash.continue") : t("studentDash.start")} {c.title || c.name}
{t("studentDash.chaptersDone", { done: c.completed_chapters, total: c.chapter_count })}
{t("studentDash.enrollToStart")}
)}{t("studentDash.noGradesYet")}
) : recentGrades.map((g) => ({g.assignment_title}
{g.course_name}