diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx new file mode 100644 index 0000000..fcae490 --- /dev/null +++ b/app/dashboard/page.tsx @@ -0,0 +1,139 @@ +'use client'; + +import { useState } from "react"; +import StatistikMahasiswaChart from "@/components/charts/StatistikMahasiswaChart"; +import StatistikPerAngkatanChart from "@/components/charts/StatistikPerAngkatanChart"; +import JenisPendaftaranChart from "@/components/charts/JenisPendaftaranChart"; +import AsalDaerahChart from "@/components/charts/AsalDaerahChart"; +import IPKChart from "@/components/charts/IPKChart"; +import FilterTahunAngkatan from "@/components/FilterTahunAngkatan"; +import JenisPendaftaranPerAngkatanChart from "@/components/charts/JenisPendaftaranPerAngkatanChart"; +import AsalDaerahPerAngkatanChart from "@/components/charts/AsalDaerahPerAngkatanChart"; +import StatusMahasiswaChart from "@/components/charts/StatusMahasiswaChart"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; + +export default function TotalMahasiswaPage() { + const [selectedYear, setSelectedYear] = useState("all"); + + // helper wrapper biar semua chart full-height di dalam card + const Tile = ({ title, children, className = "" }: any) => ( + + {title && ( + + {title} + + )} + {/* atur tinggi tile di sini */} +
{children}
+
+
+ ); + + return ( +
+
+
+

Mahasiswa

+

+ Informasi jumlah mahasiswa, jenis pendaftaran, status mahasiswa, rata-rata IPK, dan asal daerah dengan filter tahun angkatan. +

+
+ {/* (opsional) tempat tombol aksi */} + {/*
+ +
*/} +
+ +{/* Toolbar Filter (sticky) */} +
+ + +
+ + {/* tombol reset (opsional) */} + {/* */} +
+
+
+
+ + {selectedYear === "all" ? ( + /* ===== LAYOUT ALL YEARS (12 kolom) ===== */ +
+ {/* Bar besar kiri */} +
+ + + +
+ + {/* Dua tile kecil kanan atas */} +
+ + + +
+ + {/* Bar horizontal (wilayah) */} +
+ + + +
+ + {/* Rata-rata IPK */} +
+ + + +
+ + {/* Lebar penuh di bawah */} +
+ + + +
+
+ ) : ( + /* ===== LAYOUT PER ANGKATAN (12 kolom) ===== */ +
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+ )} +
+ ); +} diff --git a/app/page.tsx b/app/page.tsx index b78e953..7fbb54f 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -198,7 +198,18 @@ export default function DashboardPage() {
+ + + + Jenis Pendaftaran Mahasiswa + + + +
+
+
+
diff --git a/components/ui/Navbar.tsx b/components/ui/Navbar.tsx index 6453edf..6eea277 100644 --- a/components/ui/Navbar.tsx +++ b/components/ui/Navbar.tsx @@ -110,6 +110,11 @@ const Navbar = () => { {/* Visualisasi Dropdown - Only when logged in */} {user && ( + <> + + + Visualisasi Data +