import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout'; import { Head, Link } from '@inertiajs/react'; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/Components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "@/Components/ui/avatar"; import { Button } from "@/Components/ui/button"; import { BookOpen, Flame, GraduationCap, Trophy, Play } from "lucide-react"; import CourseCard from '@/Components/CourseCard'; interface DashboardProps { stats: { xp_points: number; current_streak: number; active_courses: number; certificates: number; srs_due: number; srs_new: number; }; activeCourses: Array<{ id: string; title: string; thumbnail: string; level: string; progress: number; lessonsCount: number; completedLessons: number; slug: string; }>; user: { name: string; avatar: string; rank: string; xp_points?: number; }; } export default function Dashboard({ stats: propStats = { xp_points: 0, current_streak: 0, active_courses: 0, certificates: 0, srs_due: 0, srs_new: 0 }, activeCourses: propCourses = [], user: propUser = { name: 'Student', avatar: '', rank: 'Genin' } }: Partial) { const activeCourses = propCourses ?? []; const userData = propUser ?? { name: 'Student', avatar: '', rank: 'Genin' }; const stats = propStats ?? { xp_points: 0, current_streak: 0, active_courses: 0, certificates: 0, srs_due: 0, srs_new: 0 }; return (

Dashboard Siswa

Selamat datang kembali! Yuk, lanjutkan progres belajarmu hari ini.

} >
{/* Stats Grid */}
Total XP
{stats.xp_points.toLocaleString()}
Streak
{stats.current_streak} Hari
Kursus
{stats.active_courses} Aktif
Sertifikat
{stats.certificates} Diraih
{/* Main Content: Course List */}

Lanjutkan Belajar

Lihat Semua
{activeCourses.length > 0 ? activeCourses.map((course, i) => ( )) : (

Belum ada kursus aktif

Mulai perjalanan belajarmu sekarang dengan memilih paket kursus yang tersedia.

)}
{/* Sidebar: Profile & SRS */}
{userData.name.charAt(0)}

{userData.name}

Rank: {userData.rank}

{stats.xp_points.toLocaleString()}

Total XP

{stats.current_streak}

Streak

{/* SRS Reminder */}
Hafalan (SRS) {stats.srs_due > 0 ? ( <>Ada {stats.srs_due} kata yang perlu diulas hari ini. ) : stats.srs_new > 0 ? ( <>Tidak ada ulasan, tapi ada {stats.srs_new} kata baru siap dipelajari! ) : ( <>Luar biasa! Semua hafalanmu sudah selesai untuk hari ini. )}
); }