From 6a926f881dfd2c2810d3b7dffac8b824f77dfe6c Mon Sep 17 00:00:00 2001 From: rstubryan Date: Tue, 9 Dec 2025 17:51:11 +0700 Subject: [PATCH] feat(FE-334): Use column footers and fix closing loading check --- src/app/_closing/detail/page.tsx | 8 +-- .../CosExpeditionReportTable.tsx | 59 ++++--------------- 2 files changed, 15 insertions(+), 52 deletions(-) diff --git a/src/app/_closing/detail/page.tsx b/src/app/_closing/detail/page.tsx index 7fb3c01d..fd11eeee 100644 --- a/src/app/_closing/detail/page.tsx +++ b/src/app/_closing/detail/page.tsx @@ -51,11 +51,9 @@ const ClosingDetailPage = () => { } if ( - !isLoading || - !closing || - isResponseError(closing) || - !hpp_ekspedisi || - isResponseError(hpp_ekspedisi) + !isLoadingClosing && + (!closing || isResponseError(closing)) && + (!hpp_ekspedisi || isResponseError(hpp_ekspedisi)) ) { router.replace('/404'); return; diff --git a/src/components/pages/closing/hpp-ekspedisi/CosExpeditionReportTable.tsx b/src/components/pages/closing/hpp-ekspedisi/CosExpeditionReportTable.tsx index b5aac35f..8abe3c0a 100644 --- a/src/components/pages/closing/hpp-ekspedisi/CosExpeditionReportTable.tsx +++ b/src/components/pages/closing/hpp-ekspedisi/CosExpeditionReportTable.tsx @@ -15,10 +15,6 @@ interface CosExpeditionReportTableProps { initialValues?: BaseClosingCosExpedition; } -interface FooterCosExpeditionRow extends BaseCosExpedition { - _isFooter: true; -} - const CosExpeditionReportTable = ({ type = 'detail', initialValues, @@ -44,19 +40,6 @@ const CosExpeditionReportTable = ({ }; }, [cosExpeditionData]); - const footerData = useMemo((): FooterCosExpeditionRow[] => { - if (cosExpeditionData.length === 0) return []; - - const footerRow: FooterCosExpeditionRow = { - id: -999, - expedition_name: 'Total HPP Ekspedisi', - hpp: totals.totalHpp, - _isFooter: true, - }; - - return [footerRow]; - }, [cosExpeditionData, totals]); - const cosExpeditionColumns: ColumnDef[] = useMemo( () => [ { @@ -64,28 +47,17 @@ const CosExpeditionReportTable = ({ accessorKey: 'id', header: 'No', cell: (props) => { - const isFooter = '_isFooter' in props.row.original; - if (isFooter) { - return ( -
- {props.row.original.expedition_name} -
- ); - } - return props.getValue() || '-'; + return
{props.row.index + 1}
; }, + footer: () => ( +
Total HPP Ekspedisi
+ ), }, { id: 'expedition_name', accessorKey: 'expedition_name', header: 'Nama Ekspedisi', - cell: (props) => { - const isFooter = '_isFooter' in props.row.original; - if (isFooter) { - return null; - } - return props.getValue() || '-'; - }, + cell: (props) => props.getValue() || '-', }, { id: 'hpp', @@ -93,22 +65,16 @@ const CosExpeditionReportTable = ({ header: 'HPP Ekspedisi', cell: (props) => { const value = props.getValue() as number; - const isFooter = '_isFooter' in props.row.original; - return ( -
- {formatCurrency(value)} -
- ); + return
{formatCurrency(value)}
; }, + footer: () => ( +
+ {formatCurrency(totals.totalHpp)} +
+ ), }, ], - [] + [totals] ); return ( @@ -125,7 +91,6 @@ const CosExpeditionReportTable = ({ 0} className={{ tableWrapperClassName: 'overflow-x-auto',