+
+ {({
+ form: { setFieldValue, values },
+ field: { value },
+ meta: { error, touched },
+ }) => (
+ {
+ setFieldValue('entries', newEntries);
+ }}
+ />
+ )}
+
+
+
+
+ }
+ value={formattedAmount(totalAmount, vendorCredit.currency_code)}
+ />
+
+ }
+ value={vendorCredit.formatted_credits_remaining}
+ />
+
+
+
+ );
+}
diff --git a/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormProvider.js b/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormProvider.js
new file mode 100644
index 000000000..0b85497f7
--- /dev/null
+++ b/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormProvider.js
@@ -0,0 +1,64 @@
+import React from 'react';
+import { DialogContent } from 'components';
+import {
+ useVendorCredit,
+ useReconcileVendorCredit,
+ useCreateReconcileVendorCredit,
+} from 'hooks/query';
+import { isEmpty } from 'lodash';
+
+const ReconcileVendorCreditFormContext = React.createContext();
+
+/**
+ * Reconcile vendor credit provider.
+ */
+function ReconcileVendorCreditFormProvider({
+ vendorCreditId,
+ dialogName,
+ ...props
+}) {
+
+ // Handle fetch reconcile
+ const {
+ isLoading: isReconcileVendorCreditLoading,
+ data: reconcileVendorCredits,
+ } = useReconcileVendorCredit(vendorCreditId, {
+ enabled: !!vendorCreditId,
+ });
+
+ // Handle fetch vendor credit details.
+ const { data: vendorCredit, isLoading: isVendorCreditLoading } =
+ useVendorCredit(vendorCreditId, {
+ enabled: !!vendorCreditId,
+ });
+
+ // Create reconcile vendor credit mutations.
+ const { mutateAsync: createReconcileVendorCreditMutate } =
+ useCreateReconcileVendorCredit();
+
+ // Detarmines the datatable empty status.
+ const isEmptyStatus = isEmpty(reconcileVendorCredits);
+
+ // provider.
+ const provider = {
+ dialogName,
+ reconcileVendorCredits,
+ createReconcileVendorCreditMutate,
+ isEmptyStatus,
+ vendorCredit,
+ };
+
+ return (
+