feat: Stripe connect using OAuth

This commit is contained in:
Ahmed Bouhuolia
2024-09-24 14:10:53 +02:00
parent 70bba4a6ed
commit b125e3e58b
26 changed files with 493 additions and 98 deletions

View File

@@ -108,6 +108,7 @@ export function transformToEditForm(invoice) {
: TaxType.Exclusive,
entries,
attachments: transformAttachmentsToForm(invoice),
payment_methods: transformPaymentMethodsToForm(invoice?.payment_methods),
};
}
@@ -228,6 +229,11 @@ export function transformValueToRequest(values) {
};
}
/**
* Transformes the form payment methods to request.
* @param {Record<string, { enable: boolean }>} paymentMethods
* @returns {Array<{ payment_integration_id: string; enable: boolean }>}
*/
const transformPaymentMethodsToRequest = (
paymentMethods: Record<string, { enable: boolean }>,
): Array<{ payment_integration_id: string; enable: boolean }> => {
@@ -237,6 +243,20 @@ const transformPaymentMethodsToRequest = (
}));
};
/**
* Transformes payment methods from request to form.
* @param {Array<{ payment_integration_id: number; enable: boolean }>} paymentMethods
* @returns {Record<string, { enable: boolean }>}
*/
const transformPaymentMethodsToForm = (
paymentMethods: Array<{ payment_integration_id: number; enable: boolean }>,
): Record<string, { enable: boolean }> => {
return paymentMethods?.reduce((acc, method) => {
acc[method.payment_integration_id] = { enable: method.enable };
return acc;
}, {});
};
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useInvoiceFormContext();