refactor(FE-208): add edit functionality and modal for Penerimaan Barang in PurchaseOrderDetail

This commit is contained in:
rstubryan
2025-11-17 11:29:17 +07:00
parent 2190f65cb2
commit d0ba9eadbd
2 changed files with 43 additions and 4 deletions
@@ -393,7 +393,9 @@ const PurchaseOrderAcceptApprovalForm = ({
<form onSubmit={formik.handleSubmit} className='w-full flex flex-col gap-6'>
<div className='w-full'>
<h2 className='text-lg font-semibold mb-4'>
Konfirmasi Penerimaan Produk
{type === 'add'
? 'Konfirmasi Penerimaan Produk'
: 'Edit Penerimaan Produk'}
</h2>
<div className='overflow-x-auto'>
<table className='table'>
@@ -54,6 +54,22 @@ const ItemPembelianDropdown = ({ onEdit }: { onEdit: () => void }) => {
);
};
const PenerimaanBarangDropdown = ({ onEdit }: { onEdit: () => void }) => {
return (
<RowOptionsMenuWrapper type='dropdown'>
<Button
onClick={onEdit}
variant='ghost'
color='warning'
className='justify-start text-sm'
>
<Icon icon='material-symbols:edit-outline' width={16} height={16} />
Edit
</Button>
</RowOptionsMenuWrapper>
);
};
interface PurchaseOrderDetailProps {
type?: 'detail' | 'edit';
data?: Purchase;
@@ -325,6 +341,7 @@ const PurchaseOrderDetail = ({
const staffApprovalModal = useModal();
const acceptApprovalModal = useModal();
const editModal = useModal();
const penerimaanBarangModal = useModal();
// ===== STATIC DATA =====
const purchaseData = data || dummyPurchaseData;
@@ -801,9 +818,14 @@ const PurchaseOrderDetail = ({
>
{/* Detail Penerimaan Barang Section */}
<div className='my-8'>
<h3 className='text-lg font-semibold text-gray-800 mb-4 pb-2 border-b border-gray-200'>
Informasi Penerimaan Barang
</h3>
<div className='flex items-center justify-between mb-4 pb-2 border-b border-gray-200'>
<h3 className='text-lg font-semibold text-gray-800'>
Informasi Penerimaan Barang
</h3>
<RowDropdownOptions isLast2Rows>
<PenerimaanBarangDropdown onEdit={penerimaanBarangModal.openModal} />
</RowDropdownOptions>
</div>
<div className='rounded-lg border border-gray-200 overflow-hidden'>
<div className='overflow-x-auto'>
<Table<PurchaseItem>
@@ -896,6 +918,21 @@ const PurchaseOrderDetail = ({
onCancel={editModal.closeModal}
/>
</Modal>
{/* Penerimaan Barang Modal */}
<Modal
ref={penerimaanBarangModal.ref}
closeOnBackdrop
className={{
modalBox: 'w-full max-w-screen-2xl max-h-[90vh] overflow-y-auto',
}}
>
<PurchaseOrderAcceptApprovalForm
type='edit'
initialValues={purchaseData}
onCancel={penerimaanBarangModal.closeModal}
/>
</Modal>
</section>
);
};