chrone: sperate client and server to different repos.

This commit is contained in:
a.bouhuolia
2021-09-21 17:13:53 +02:00
parent e011b2a82b
commit 18df5530c7
10015 changed files with 17686 additions and 97524 deletions

View File

@@ -0,0 +1,50 @@
import React, { useContext, createContext } from 'react';
import { pick } from 'lodash';
import { DialogContent } from 'components';
import { useAccounts, useInvoice, useSettingsPaymentReceives, useCreatePaymentReceive } from 'hooks/query';
const QuickPaymentReceiveContext = createContext();
/**
* Quick payment receive dialog provider.
*/
function QuickPaymentReceiveFormProvider({ invoiceId, dialogName, ...props }) {
// Handle fetch accounts data.
const { data: accounts, isLoading: isAccountsLoading } = useAccounts();
// Handle fetch invoice data.
const { data: invoice, isLoading: isInvoiceLoading } = useInvoice(invoiceId, {
enabled: !!invoiceId,
});
// Create and edit payment receive mutations.
const { mutateAsync: createPaymentReceiveMutate } = useCreatePaymentReceive();
// Fetch payment made settings.
const { isLoading: isSettingsLoading } = useSettingsPaymentReceives();
// State provider.
const provider = {
accounts,
invoice: {
...pick(invoice, ['id', 'due_amount', 'customer', 'currency_code']),
customer_id: invoice?.customer?.display_name,
payment_amount: invoice.due_amount,
},
isAccountsLoading,
isSettingsLoading,
dialogName,
createPaymentReceiveMutate,
};
return (
<DialogContent isLoading={isAccountsLoading || isInvoiceLoading}>
<QuickPaymentReceiveContext.Provider value={provider} {...props} />
</DialogContent>
);
}
const useQuickPaymentReceiveContext = () =>
useContext(QuickPaymentReceiveContext);
export { QuickPaymentReceiveFormProvider, useQuickPaymentReceiveContext };