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,75 @@
import React, { createContext, useContext } from 'react';
import { DialogContent } from 'components';
import {
useCreateAccount,
useAccountsTypes,
useAccount,
useAccounts,
useEditAccount,
} from 'hooks/query';
const AccountDialogContext = createContext();
/**
* Account form provider.
*/
function AccountDialogProvider({
accountId,
parentAccountId,
action,
accountType,
dialogName,
...props
}) {
// Create and edit account mutations.
const { mutateAsync: createAccountMutate } = useCreateAccount();
const { mutateAsync: editAccountMutate } = useEditAccount();
// Fetches accounts list.
const { data: accounts, isLoading: isAccountsLoading } = useAccounts();
// Fetches accounts types.
const {
data: accountsTypes,
isLoading: isAccountsTypesLoading,
} = useAccountsTypes();
// Fetches the specific account details.
const { data: account, isLoading: isAccountLoading } = useAccount(accountId, {
enabled: !!accountId,
});
const isNewMode = !accountId;
// Provider payload.
const provider = {
dialogName,
accountId,
parentAccountId,
action,
accountType,
createAccountMutate,
editAccountMutate,
accounts,
accountsTypes,
account,
isAccountsLoading,
isNewMode
};
const isLoading =
isAccountsLoading || isAccountsTypesLoading || isAccountLoading;
return (
<DialogContent isLoading={isLoading}>
<AccountDialogContext.Provider value={provider} {...props} />
</DialogContent>
);
}
const useAccountDialogContext = () => useContext(AccountDialogContext);
export { AccountDialogProvider, useAccountDialogContext };