feat(FE-208): add refetchData prop to PurchaseOrderDetail and related forms for improved data synchronization

This commit is contained in:
rstubryan
2025-11-21 18:18:40 +07:00
parent c74733430b
commit 95a7afdaa6
4 changed files with 45 additions and 15 deletions
@@ -69,11 +69,13 @@ const PenerimaanBarangDropdown = ({ onEdit }: { onEdit: () => void }) => {
interface PurchaseOrderDetailProps {
type?: 'detail' | 'edit';
initialValues?: Purchase;
refetchData?: () => void;
}
const PurchaseOrderDetail = ({
type = 'detail',
initialValues,
refetchData,
}: PurchaseOrderDetailProps) => {
// ===== MODAL HOOKS =====
const searchParams = useSearchParams();
@@ -251,8 +253,9 @@ const PurchaseOrderDetail = ({
}
toast.success(res?.message as string);
refreshApprovals();
refetchData?.();
},
[initialValues?.id, searchParams, refreshApprovals]
[initialValues?.id, searchParams, refreshApprovals, refetchData]
);
const createManagerApprovalHandler = useCallback(
@@ -276,20 +279,23 @@ const PurchaseOrderDetail = ({
return;
}
toast.success(res?.message as string);
refetchData?.();
},
[initialValues?.id, searchParams]
[initialValues?.id, searchParams, refetchData]
);
// ===== MODAL HANDLERS =====
const handleStaffApprovalModalClose = useCallback(() => {
refreshApprovals();
refetchData?.();
staffApprovalModal.closeModal();
}, [refreshApprovals]);
}, [refreshApprovals, refetchData]);
const handleEditModalClose = useCallback(() => {
refreshApprovals();
refetchData?.();
editModal.closeModal();
}, [refreshApprovals]);
}, [refreshApprovals, refetchData]);
// ===== DELETE HANDLER =====
const deleteItemsHandler = useCallback(async () => {
@@ -327,6 +333,7 @@ const PurchaseOrderDetail = ({
toast.success(successMessage);
refreshApprovals();
refetchData?.();
deleteModal.closeModal();
setSelectedItem(null);
setRowSelection({});
@@ -335,7 +342,7 @@ const PurchaseOrderDetail = ({
} finally {
setIsDeleteLoading(false);
}
}, [initialValues?.id, searchParams, selectedItem, selectedRowIds]);
}, [initialValues?.id, searchParams, selectedItem, selectedRowIds, refetchData]);
if (!initialValues) {
return null;
@@ -901,6 +908,7 @@ const PurchaseOrderDetail = ({
await createManagerApprovalHandler(payload);
await refreshApprovals();
await refetchData?.();
confirmationModalWithNotes.closeModal();
},
}}
@@ -923,6 +931,7 @@ const PurchaseOrderDetail = ({
onCancel={handleStaffApprovalModalClose}
refreshApprovals={refreshApprovals}
onModalClose={staffApprovalModal.closeModal}
onRefetchData={refetchData}
/>
</Modal>
@@ -940,6 +949,7 @@ const PurchaseOrderDetail = ({
onCancel={acceptApprovalModal.closeModal}
refreshApprovals={refreshApprovals}
onModalClose={acceptApprovalModal.closeModal}
onRefetchData={refetchData}
/>
</Modal>
@@ -957,6 +967,7 @@ const PurchaseOrderDetail = ({
onCancel={handleEditModalClose}
refreshApprovals={refreshApprovals}
onModalClose={editModal.closeModal}
onRefetchData={refetchData}
/>
</Modal>
@@ -974,6 +985,7 @@ const PurchaseOrderDetail = ({
onCancel={penerimaanBarangModal.closeModal}
refreshApprovals={refreshApprovals}
onModalClose={penerimaanBarangModal.closeModal}
onRefetchData={refetchData}
/>
</Modal>
@@ -996,6 +1008,7 @@ const PurchaseOrderDetail = ({
};
await createStaffApprovalHandler(payload);
await refetchData?.();
staffRejectionModal.closeModal();
},
}}