From ffea96edf999efc95ea3b4d2380df7028d7fe06c Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 21 Nov 2025 20:30:06 +0700 Subject: [PATCH] refactor(FE-208): update deletion logic in PurchaseOrderDetail to allow item deletion only at approval step 3 --- .../purchase/order/PurchaseOrderDetail.tsx | 61 ++++++++++++------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/src/components/pages/purchase/order/PurchaseOrderDetail.tsx b/src/components/pages/purchase/order/PurchaseOrderDetail.tsx index 9d479e63..6bc5d99b 100644 --- a/src/components/pages/purchase/order/PurchaseOrderDetail.tsx +++ b/src/components/pages/purchase/order/PurchaseOrderDetail.tsx @@ -1,7 +1,12 @@ 'use client'; import { useCallback, useMemo, useState } from 'react'; -import { ColumnDef, SortingState, Row, Table as TableType } from '@tanstack/react-table'; +import { + ColumnDef, + SortingState, + Row, + Table as TableType, +} from '@tanstack/react-table'; import ApprovalSteps, { useApprovalSteps, @@ -160,7 +165,7 @@ const PurchaseOrderDetail = ({ const canDeleteItems = useMemo(() => { if (!initialValues?.approval) return false; - return initialValues.approval.step_number >= 3; + return initialValues.approval.step_number === 3; }, [initialValues?.approval]); const handleApprovalClick = () => { @@ -342,7 +347,13 @@ const PurchaseOrderDetail = ({ } finally { setIsDeleteLoading(false); } - }, [initialValues?.id, searchParams, selectedItem, selectedRowIds, refetchData]); + }, [ + initialValues?.id, + searchParams, + selectedItem, + selectedRowIds, + refetchData, + ]); if (!initialValues) { return null; @@ -427,27 +438,31 @@ const PurchaseOrderDetail = ({ header: 'Total (Rp.)', cell: (props) => formatCurrency(props.getValue() as number), }, - { - header: 'Aksi', - cell: (props) => { - const deleteClickHandler = () => { - setSelectedItem(props.row.original); - setRowSelection({}); - deleteModal.openModal(); - }; + ...(canDeleteItems + ? [ + { + header: 'Aksi', + cell: (props: { row: Row }) => { + const deleteClickHandler = () => { + setSelectedItem(props.row.original); + setRowSelection({}); + deleteModal.openModal(); + }; - return canDeleteItems ? ( - - ) : null; - }, - }, + return ( + + ); + }, + }, + ] + : []), ]; const goodsReceiptColumns: ColumnDef[] = [