Change total mahasiswa

This commit is contained in:
Randa Firman Putra
2025-06-24 00:50:02 +07:00
parent fadca46dc1
commit eb7c884c41
19 changed files with 569 additions and 138 deletions

View File

@@ -11,7 +11,7 @@ const Chart = dynamic(() => import('react-apexcharts'), { ssr: false });
interface TingkatPrestasiData {
tahun_angkatan: number;
tingkat: string;
tingkat_prestasi: string;
tingkat_mahasiswa_prestasi: number;
}
@@ -67,12 +67,12 @@ export default function TingkatPrestasiChart({ selectedJenisPrestasi }: Props) {
if (!data.length) return [];
const years = [...new Set(data.map(item => item.tahun_angkatan))].sort();
const tingkatTypes = [...new Set(data.map(item => item.tingkat))].sort();
const tingkatTypes = [...new Set(data.map(item => item.tingkat_prestasi))].sort();
return tingkatTypes.map(tingkat => ({
name: tingkat,
data: years.map(year => {
const item = data.find(d => d.tahun_angkatan === year && d.tingkat === tingkat);
const item = data.find(d => d.tahun_angkatan === year && d.tingkat_prestasi === tingkat);
return item?.tingkat_mahasiswa_prestasi || 0;
})
}));
@@ -202,6 +202,23 @@ export default function TingkatPrestasiChart({ selectedJenisPrestasi }: Props) {
const series = processSeriesData();
// Calculate the maximum value from all series for y-axis padding
const maxValue = Math.max(
...series.flatMap(s => s.data)
);
// Add 20% padding to the maximum value
const yAxisMax = Math.ceil(maxValue * 1.2);
// Update chart options with y-axis max
const updatedChartOptions: ApexOptions = {
...chartOptions,
yaxis: {
...chartOptions.yaxis,
max: yAxisMax
}
};
if (loading) {
return (
<Card className="bg-white dark:bg-slate-900 shadow-lg">
@@ -249,7 +266,7 @@ export default function TingkatPrestasiChart({ selectedJenisPrestasi }: Props) {
<div className="h-[400px] sm:h-[350px] md:h-[400px] w-full max-w-5xl mx-auto">
{typeof window !== 'undefined' && series.length > 0 && (
<Chart
options={chartOptions}
options={updatedChartOptions}
series={series}
type="bar"
height="100%"