feat: money out.

This commit is contained in:
elforjani13
2021-10-23 20:04:59 +02:00
parent 1fa03822f1
commit 75acab3348
24 changed files with 227 additions and 498 deletions

View File

@@ -0,0 +1,52 @@
import React from 'react';
import { DialogContent } from 'components';
import {
useAccounts,
useCreateCashflowTransaction,
useCashflowAccounts,
} from 'hooks/query';
const MoneyInDialogContent = React.createContext();
/**
* Money out dialog provider.
*/
function MoneyOutProvider({ accountId, accountType, dialogName, ...props }) {
// Fetches accounts list.
const { isLoading: isAccountsLoading, data: accounts } = useAccounts();
// Fetch cash flow list .
const { data: cashflowAccounts, isLoading: isCashFlowAccountsLoading } =
useCashflowAccounts({}, { keepPreviousData: true });
const { mutateAsync: createCashflowTransactionMutate } =
useCreateCashflowTransaction();
// Submit payload.
const [submitPayload, setSubmitPayload] = React.useState({});
// provider.
const provider = {
accounts,
accountId,
accountType,
isAccountsLoading,
cashflowAccounts,
submitPayload,
dialogName,
createCashflowTransactionMutate,
setSubmitPayload,
};
return (
<DialogContent isLoading={isAccountsLoading || isCashFlowAccountsLoading}>
<MoneyInDialogContent.Provider value={provider} {...props} />
</DialogContent>
);
}
const useMoneyOutDialogContext = () => React.useContext(MoneyInDialogContent);
export { MoneyOutProvider, useMoneyOutDialogContext };