feat(FE-355): Remove pagination from HppPerKandangTab

This commit is contained in:
rstubryan
2025-12-17 11:01:01 +07:00
parent 78efd587be
commit 730b7903a7
@@ -37,10 +37,6 @@ const HppPerKandangTab = () => {
// ===== STATE MANAGEMENT ===== // ===== STATE MANAGEMENT =====
const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); const [isPdfExportLoading, setIsPdfExportLoading] = useState(false);
// ===== PAGINATION STATE =====
const [currentPage, setCurrentPage] = useState(1);
const [pageSize, setPageSize] = useState(10);
// ===== SUBMISSION STATE ===== // ===== SUBMISSION STATE =====
const [isSubmitted, setIsSubmitted] = useState(false); const [isSubmitted, setIsSubmitted] = useState(false);
@@ -162,7 +158,6 @@ const HppPerKandangTab = () => {
return; return;
} }
setIsSubmitted(true); setIsSubmitted(true);
setCurrentPage(1);
}, [tableFilterState.period]); }, [tableFilterState.period]);
// ===== DATA FETCHING ===== // ===== DATA FETCHING =====
@@ -188,8 +183,6 @@ const HppPerKandangTab = () => {
period: tableFilterState.period || undefined, period: tableFilterState.period || undefined,
sort_by: tableFilterState.sort_by || undefined, sort_by: tableFilterState.sort_by || undefined,
show_unrecorded: tableFilterState.show_unrecorded, show_unrecorded: tableFilterState.show_unrecorded,
page: currentPage,
limit: pageSize,
}; };
return ['hpp-per-kandang-report', params]; return ['hpp-per-kandang-report', params];
@@ -204,9 +197,7 @@ const HppPerKandangTab = () => {
params.weight_max, params.weight_max,
params.period, params.period,
params.sort_by, params.sort_by,
params.show_unrecorded, params.show_unrecorded
params.page,
params.limit
) )
); );
@@ -255,8 +246,6 @@ const HppPerKandangTab = () => {
period: tableFilterState.period || undefined, period: tableFilterState.period || undefined,
sort_by: tableFilterState.sort_by || undefined, sort_by: tableFilterState.sort_by || undefined,
show_unrecorded: tableFilterState.show_unrecorded, show_unrecorded: tableFilterState.show_unrecorded,
limit: 10000,
page: 1,
}; };
return ['hpp-per-kandang-report-export', params]; return ['hpp-per-kandang-report-export', params];
@@ -271,9 +260,7 @@ const HppPerKandangTab = () => {
params.weight_max, params.weight_max,
params.period, params.period,
params.sort_by, params.sort_by,
params.show_unrecorded, params.show_unrecorded
params.page,
params.limit
) )
); );
@@ -399,27 +386,6 @@ const HppPerKandangTab = () => {
kandangOptions, kandangOptions,
]); ]);
// ===== PAGINATION HANDLERS =====
const handlePageChange = (page: number) => {
setCurrentPage(page);
};
const handleRowChange = (pageSize: number) => {
setPageSize(pageSize);
};
const handleNextPage = () => {
if (meta && currentPage < meta.total_pages) {
setCurrentPage(currentPage + 1);
}
};
const handlePrevPage = () => {
if (currentPage > 1) {
setCurrentPage(currentPage - 1);
}
};
// ===== TABLE COLUMNS DEFINITION ===== // ===== TABLE COLUMNS DEFINITION =====
const totals: Totals = useMemo(() => { const totals: Totals = useMemo(() => {
return { return {
@@ -756,60 +722,31 @@ const HppPerKandangTab = () => {
Tidak ada data yang dapat ditampilkan... Tidak ada data yang dapat ditampilkan...
</div> </div>
) : ( ) : (
<Card <Table
title={`Data HPP Per Kandang`} data={data}
subtitle={ columns={getTableColumns()}
summary renderFooter={data.length > 0}
? `Total Sisa Ayam: ${formatNumber( className={{
summary.total_remaining_chicken_birds containerClassName: 'w-full',
)} ekor | Total Nilai Sisa: ${formatCurrency( tableWrapperClassName: 'overflow-x-auto mt-4',
summary.total_remaining_value_rp tableClassName: 'w-full table-auto text-sm',
)}` headerRowClassName: 'border-b border-b-gray-200 bg-gray-50',
: undefined headerColumnClassName:
} 'px-4 py-3 text-xs font-semibold text-gray-700 text-left border border-gray-200',
className={{ wrapper: 'w-full', body: 'py-6! p-0' }} bodyRowClassName:
> 'hover:bg-gray-50 transition-colors border-b border-l border-r border-b-gray-200 border-l-gray-200 border-r-gray-200',
<Table bodyColumnClassName:
data={data} 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap',
columns={getTableColumns()} tableFooterClassName:
pageSize={pageSize} 'bg-gray-100 font-semibold border border-gray-200',
renderFooter={data.length > 0} footerRowClassName: 'border-t-2 border-gray-300',
className={{ footerColumnClassName:
containerClassName: 'w-full', 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap',
tableWrapperClassName: 'overflow-x-auto mt-4', paginationClassName: 'hidden',
tableClassName: 'w-full table-auto text-sm', }}
headerRowClassName: 'border-b border-b-gray-200 bg-gray-50', />
headerColumnClassName:
'px-4 py-3 text-xs font-semibold text-gray-700 text-left border border-gray-200',
bodyRowClassName:
'hover:bg-gray-50 transition-colors border-b border-l border-r border-b-gray-200 border-l-gray-200 border-r-gray-200',
bodyColumnClassName:
'px-4 py-3 text-xs text-gray-900 whitespace-nowrap',
tableFooterClassName:
'bg-gray-100 font-semibold border border-gray-200',
footerRowClassName: 'border-t-2 border-gray-300',
footerColumnClassName:
'px-4 py-3 text-xs text-gray-900 whitespace-nowrap',
paginationClassName: 'hidden',
}}
/>
</Card>
)} )}
</Card> </Card>
{meta && data.length > 0 && (
<div className='mt-6'>
<Pagination
currentPage={meta.page}
totalItems={meta.total_results}
onPageChange={handlePageChange}
onRowChange={handleRowChange}
onNextPage={handleNextPage}
onPrevPage={handlePrevPage}
rowOptions={[10, 25, 50, 100]}
itemsPerPage={meta.limit}
/>
</div>
)}
</div> </div>
); );
}; };