feat: add edit locking transactions.

This commit is contained in:
elforjani13
2021-12-14 22:05:17 +02:00
parent 7cd2b1c533
commit 92cff82184
10 changed files with 73 additions and 19 deletions

View File

@@ -9,9 +9,14 @@ export default function LockingTransactionsDialogContent({
// #ownProps
dialogName,
moduleName,
isEnabled,
}) {
return (
<LockingTransactionsFormProvider moduleName={moduleName} dialogName={dialogName}>
<LockingTransactionsFormProvider
isEnabled={isEnabled}
moduleName={moduleName}
dialogName={dialogName}
>
<LockingTransactionsForm />
</LockingTransactionsFormProvider>
);

View File

@@ -13,7 +13,7 @@ import { useLockingTransactionsContext } from './LockingTransactionsFormProvider
import LockingTransactionsFormContent from './LockingTransactionsFormContent';
import withDialogActions from 'containers/Dialog/withDialogActions';
import { compose } from 'utils';
import { compose, transformToForm } from 'utils';
const defaultInitialValues = {
module: '',
@@ -28,14 +28,29 @@ function LockingTransactionsForm({
// #withDialogActions
closeDialog,
}) {
const { dialogName, moduleName, createLockingTransactionMutate } =
useLockingTransactionsContext();
const {
dialogName,
moduleName,
transactionLocking,
isEnabled,
createLockingTransactionMutate,
} = useLockingTransactionsContext();
// Initial form values.
const initialValues = {
...defaultInitialValues,
module: moduleName,
};
const initialValues = React.useMemo(
() => ({
...(!isEnabled
? {
...defaultInitialValues,
module: moduleName,
}
: {
...transformToForm(transactionLocking, defaultInitialValues),
module: moduleName,
}),
}),
[isEnabled],
);
// Handles the form submit.
const handleFormSubmit = (values, { setSubmitting, setErrors }) => {

View File

@@ -1,25 +1,42 @@
import React from 'react';
import { DialogContent } from 'components';
import { useCreateLockingTransactoin } from 'hooks/query';
import {
useCreateLockingTransactoin,
useEditTransactionsLocking,
} from 'hooks/query';
const LockingTransactionsContext = React.createContext();
/**
* Locking transactions form provider.
*/
function LockingTransactionsFormProvider({ moduleName, dialogName, ...props }) {
function LockingTransactionsFormProvider({
moduleName,
isEnabled,
dialogName,
...props
}) {
// Create locking transactions mutations.
const { mutateAsync: createLockingTransactionMutate } =
useCreateLockingTransactoin();
const { data: transactionLocking, isLoading: isTransactionsLockingLoading } =
useEditTransactionsLocking(moduleName, {
enabled: !!isEnabled,
});
// const isEnabled = transactionLocking?.is_enabled;
// State provider.
const provider = {
dialogName,
moduleName,
createLockingTransactionMutate,
transactionLocking,
isEnabled,
};
return (
<DialogContent>
<DialogContent isLoading={isTransactionsLockingLoading}>
<LockingTransactionsContext.Provider value={provider} {...props} />
</DialogContent>
);

View File

@@ -12,7 +12,7 @@ const LockingTransactionsDialogContent = React.lazy(() =>
*/
function LockingTransactionsDialog({
dialogName,
payload: { module },
payload: { module, isEnabled },
isOpen,
}) {
return (
@@ -28,6 +28,7 @@ function LockingTransactionsDialog({
<LockingTransactionsDialogContent
moduleName={module}
dialogName={dialogName}
isEnabled={isEnabled}
/>
</DialogSuspense>
</Dialog>