refactor: optimize grid layout for Dashboard component based on visible stats count
This commit is contained in:
parent
8f15ad5971
commit
4ec4a4c135
@ -160,22 +160,6 @@ export default function Dashboard({
|
|||||||
return count;
|
return count;
|
||||||
}, [can]);
|
}, [can]);
|
||||||
|
|
||||||
const statsGridClass = useMemo(() => {
|
|
||||||
if (visibleStatsCount === 1) {
|
|
||||||
return 'grid gap-4 grid-cols-1 md:max-w-md';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (visibleStatsCount === 2) {
|
|
||||||
return 'grid gap-4 grid-cols-1 md:grid-cols-2';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (visibleStatsCount === 3) {
|
|
||||||
return 'grid gap-4 grid-cols-1 md:grid-cols-3';
|
|
||||||
}
|
|
||||||
|
|
||||||
return 'grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-4';
|
|
||||||
}, [visibleStatsCount]);
|
|
||||||
|
|
||||||
const visibleChartsCount = useMemo(() => {
|
const visibleChartsCount = useMemo(() => {
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|
||||||
@ -316,7 +300,7 @@ export default function Dashboard({
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
{visibleStatsCount > 0 && (
|
{visibleStatsCount > 0 && (
|
||||||
<div className={statsGridClass}>
|
<div className="grid gap-4" style={{ gridTemplateColumns: `repeat(${visibleStatsCount}, minmax(0, 1fr))` }}>
|
||||||
{can('dashboard.attendance') && (
|
{can('dashboard.attendance') && (
|
||||||
<StatCard
|
<StatCard
|
||||||
title="Kehadiran Hari Ini"
|
title="Kehadiran Hari Ini"
|
||||||
@ -329,6 +313,7 @@ export default function Dashboard({
|
|||||||
{ label: 'Tidak Hadir', value: attendanceStats.absent },
|
{ label: 'Tidak Hadir', value: attendanceStats.absent },
|
||||||
{ label: 'Cuti', value: attendanceStats.on_leave },
|
{ label: 'Cuti', value: attendanceStats.on_leave },
|
||||||
]}
|
]}
|
||||||
|
cols={3}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@ -369,7 +354,7 @@ export default function Dashboard({
|
|||||||
value: `Rp${formatRupiah(revenueSummary.total_cogs)}`,
|
value: `Rp${formatRupiah(revenueSummary.total_cogs)}`,
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
cols={2}
|
cols={visibleStatsCount === 1 ? 4 : visibleStatsCount === 2 ? 3 : 2}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@ -389,6 +374,7 @@ export default function Dashboard({
|
|||||||
value: `Rp${formatRupiah(expenseSummary.advance_total)}`,
|
value: `Rp${formatRupiah(expenseSummary.advance_total)}`,
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
|
cols={visibleStatsCount <= 2 ? 2 : 2}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user