'use client'; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Users, GraduationCap, Trophy, BookOpen } from "lucide-react"; // Skeleton loading component for stats cards export const DashboardStatsSkeleton = () => (
{[...Array(4)].map((_, i) => (
))}
); interface MahasiswaTotal { total_mahasiswa: number; mahasiswa_aktif: number; total_lulus: number; pria_lulus: number; wanita_lulus: number; total_berprestasi: number; prestasi_akademik: number; prestasi_non_akademik: number; total_mahasiswa_aktif_lulus: number; total_mahasiswa_beasiswa: number; total_mahasiswa_beasiswa_pemerintah: number; total_mahasiswa_beasiswa_non_pemerintah: number; } interface DashboardStatsProps { mahasiswaData: MahasiswaTotal; } export default function DashboardStats({ mahasiswaData }: DashboardStatsProps) { return (
{/* Kartu Total Mahasiswa */} Total Mahasiswa
{mahasiswaData.total_mahasiswa}
Aktif: {mahasiswaData.mahasiswa_aktif}
{/* Kartu Total Kelulusan */} Total Kelulusan
{mahasiswaData.total_lulus}
Laki-laki: {mahasiswaData.pria_lulus} Perempuan: {mahasiswaData.wanita_lulus}
{/* Kartu Total Prestasi */} Mahasiswa Berprestasi
{mahasiswaData.total_berprestasi}
Akademik: {mahasiswaData.prestasi_akademik} Non-Akademik: {mahasiswaData.prestasi_non_akademik}
{/* Kartu Mahasiswa Beasiswa */} Mahasiswa Beasiswa
{mahasiswaData.total_mahasiswa_beasiswa}
Pemerintah: {mahasiswaData.total_mahasiswa_beasiswa_pemerintah} Non-Pemerintah: {mahasiswaData.total_mahasiswa_beasiswa_non_pemerintah}
); }