+
);
diff --git a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFloatingActions.js b/src/containers/Dialogs/MoneyOutDialog/MoneyOutFloatingActions.js
similarity index 86%
rename from src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFloatingActions.js
rename to src/containers/Dialogs/MoneyOutDialog/MoneyOutFloatingActions.js
index b8ed31d47..cd7b987e7 100644
--- a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFloatingActions.js
+++ b/src/containers/Dialogs/MoneyOutDialog/MoneyOutFloatingActions.js
@@ -3,15 +3,17 @@ import { Intent, Button, Classes } from '@blueprintjs/core';
import { useFormikContext } from 'formik';
import { FormattedMessage as T } from 'components';
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
+import { useMoneyOutDialogContext } from './MoneyOutDialogProvider';
import withDialogActions from 'containers/Dialog/withDialogActions';
+import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
+
import { compose } from 'utils';
/**
- * Owner drawings floating actions.
+ * Money out floating actions.
*/
-function OwnerDrawingsFloatingActions({
+function MoneyOutFloatingActions({
// #withDialogActions
closeDialog,
}) {
@@ -73,4 +75,4 @@ function OwnerDrawingsFloatingActions({
);
}
-export default compose(withDialogActions)(OwnerDrawingsFloatingActions);
+export default compose(withDialogActions)(MoneyOutFloatingActions);
diff --git a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseForm.js b/src/containers/Dialogs/MoneyOutDialog/MoneyOutForm.js
similarity index 77%
rename from src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseForm.js
rename to src/containers/Dialogs/MoneyOutDialog/MoneyOutForm.js
index 13513022e..6a5c08dcb 100644
--- a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseForm.js
+++ b/src/containers/Dialogs/MoneyOutDialog/MoneyOutForm.js
@@ -8,10 +8,11 @@ import intl from 'react-intl-universal';
import 'style/pages/CashFlow/CashflowTransactionForm.scss';
import { AppToaster } from 'components';
-import { CreateOtherExpenseFormSchema } from './OtherExpenseForm.schema';
-import OtherExpenseFormContent from './OtherExpenseFormContent';
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
+import MoneyOutFormContent from './MoneyOutFormContent';
+import { CreateMoneyOutSchema } from './MoneyOutForm.schema';
+
+import { useMoneyOutDialogContext } from './MoneyOutDialogProvider';
import withDialogActions from 'containers/Dialog/withDialogActions';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
@@ -22,7 +23,7 @@ const defaultInitialValues = {
date: moment(new Date()).format('YYYY-MM-DD'),
amount: '',
transaction_number: '',
- transaction_type: 'other_expense',
+ transaction_type: '',
reference_no: '',
cashflow_account_id: '',
credit_account_id: '',
@@ -30,10 +31,7 @@ const defaultInitialValues = {
published: '',
};
-/**
- * Other expense form.
- */
-function OtherExpenseForm({
+function MoneyOutForm({
// #withDialogActions
closeDialog,
@@ -43,6 +41,7 @@ function OtherExpenseForm({
const {
dialogName,
accountId,
+ accountType,
createCashflowTransactionMutate,
submitPayload,
} = useMoneyOutDialogContext();
@@ -51,6 +50,7 @@ function OtherExpenseForm({
const initialValues = {
...defaultInitialValues,
currency_code: base_currency,
+ transaction_type: accountType,
cashflow_account_id: accountId,
};
@@ -74,19 +74,20 @@ function OtherExpenseForm({
setSubmitting(true);
});
};
-
return (
-
-
-
+
+
+
+
+
);
}
export default compose(
withDialogActions,
withCurrentOrganization(),
-)(OtherExpenseForm);
+)(MoneyOutForm);
diff --git a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountForm.schema.js b/src/containers/Dialogs/MoneyOutDialog/MoneyOutForm.schema.js
similarity index 80%
rename from src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountForm.schema.js
rename to src/containers/Dialogs/MoneyOutDialog/MoneyOutForm.schema.js
index 39b71ab31..08228e2b6 100644
--- a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountForm.schema.js
+++ b/src/containers/Dialogs/MoneyOutDialog/MoneyOutForm.schema.js
@@ -8,9 +8,7 @@ const Schema = Yup.object().shape({
transaction_number: Yup.string(),
transaction_type: Yup.string().required(),
reference_no: Yup.string(),
- credit_account_id: Yup.number()
- .required()
- .label(intl.get('account')),
+ credit_account_id: Yup.number().required(),
cashflow_account_id: Yup.string().required(),
description: Yup.string()
.min(3)
@@ -19,4 +17,4 @@ const Schema = Yup.object().shape({
published: Yup.boolean(),
});
-export const CreateTransferToAccountFormSchema = Schema;
+export const CreateMoneyOutSchema = Schema;
diff --git a/src/containers/Dialogs/MoneyOutDialog/MoneyOutFormContent.js b/src/containers/Dialogs/MoneyOutDialog/MoneyOutFormContent.js
new file mode 100644
index 000000000..b44581433
--- /dev/null
+++ b/src/containers/Dialogs/MoneyOutDialog/MoneyOutFormContent.js
@@ -0,0 +1,17 @@
+import React from 'react';
+import { Form } from 'formik';
+
+import MoneyOutFormFields from './MoneyOutFormFields';
+import MoneyOutFloatingActions from './MoneyOutFloatingActions';
+
+/**
+ * Money out form content.
+ */
+export default function MoneyOutFormContent() {
+ return (
+
+ );
+}
diff --git a/src/containers/Dialogs/MoneyOutDialog/MoneyOutFormFields.js b/src/containers/Dialogs/MoneyOutDialog/MoneyOutFormFields.js
new file mode 100644
index 000000000..0b3a18630
--- /dev/null
+++ b/src/containers/Dialogs/MoneyOutDialog/MoneyOutFormFields.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import { Classes } from '@blueprintjs/core';
+
+import { If } from 'components';
+
+import MoneyOutContentFields from './MoneyOutContentFields';
+import TransactionTypeFields from './TransactionTypeFields';
+import { useMoneyOutDialogContext } from './MoneyOutDialogProvider';
+
+/**
+ * Money out form fields.
+ */
+function MoneyOutFormFields() {
+ // Money in dialog context.
+ const { accountId, accountType } = useMoneyOutDialogContext();
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default MoneyOutFormFields;
diff --git a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseFloatingActions.js b/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseFloatingActions.js
deleted file mode 100644
index acd9877e9..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseFloatingActions.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import React from 'react';
-import { Intent, Button, Classes } from '@blueprintjs/core';
-import { useFormikContext } from 'formik';
-import { FormattedMessage as T } from 'components';
-
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
-
-import withDialogActions from 'containers/Dialog/withDialogActions';
-import { compose } from 'utils';
-
-/**
- * Other expense floating actions.
- */
-function OtherExpenseFloatingActions({
- // #withDialogActions
- closeDialog,
-}) {
- // Formik context.
- const { isSubmitting, submitForm } = useFormikContext();
- // money in dialog context.
- const { dialogName, setSubmitPayload, submitPayload } =
- useMoneyOutDialogContext();
-
- // handle submit as draft button click.
- const handleSubmitDraftBtnClick = (event) => {
- setSubmitPayload({ publish: false });
- submitForm();
- };
-
- // Handle submit button click.
- const handleSubmittBtnClick = (event) => {
- setSubmitPayload({ publish: true });
- submitForm();
- };
-
- // Handle close button click.
- const handleCloseBtnClick = (event) => {
- closeDialog(dialogName);
- };
-
- return (
-
-
-
-
-
-
-
-
- );
-}
-
-export default compose(withDialogActions)(OtherExpenseFloatingActions);
diff --git a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseForm.schema.js b/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseForm.schema.js
deleted file mode 100644
index fc4d58460..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseForm.schema.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as Yup from 'yup';
-import intl from 'react-intl-universal';
-import { DATATYPES_LENGTH } from 'common/dataTypes';
-
-const Schema = Yup.object().shape({
- date: Yup.date().required().label(intl.get('date')),
- amount: Yup.number().required().label(intl.get('amount')),
- transaction_number: Yup.string(),
- transaction_type: Yup.string().required(),
- reference_no: Yup.string(),
- credit_account_id: Yup.number()
- .required()
- .label(intl.get('other_expense_account')),
- cashflow_account_id: Yup.string().required(),
- description: Yup.string()
- .min(3)
- .max(DATATYPES_LENGTH.TEXT)
- .label(intl.get('description')),
- published: Yup.boolean(),
-});
-
-export const CreateOtherExpenseFormSchema = Schema;
diff --git a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseFormContent.js b/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseFormContent.js
deleted file mode 100644
index 4f578485a..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpenseFormContent.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from 'react';
-import { Form } from 'formik';
-
-import OtherExpnseFormFields from './OtherExpnseFormFields';
-import OtherExpenseFloatingActions from './OtherExpenseFloatingActions';
-
-/**
- * Other expense form content.
- */
-export default function OtherExpenseFormContent() {
- return (
-
- );
-}
diff --git a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpnseFormFields.js b/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpnseFormFields.js
index 93cabd62d..39833ff96 100644
--- a/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpnseFormFields.js
+++ b/src/containers/Dialogs/MoneyOutDialog/OtherExpense/OtherExpnseFormFields.js
@@ -29,7 +29,7 @@ import {
handleDateChange,
} from 'utils';
import { CLASSES } from 'common/classes';
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
+import { useMoneyOutDialogContext } from '../MoneyOutDialogProvider';
/**
* Other expense form fields.
@@ -41,7 +41,7 @@ function OtherExpnseFormFields() {
const amountFieldRef = useAutofocus();
return (
-
+
{/*------------ Date -----------*/}
@@ -188,7 +188,7 @@ function OtherExpnseFormFields() {
)}
-
+
);
}
diff --git a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsForm.js b/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsForm.js
deleted file mode 100644
index 267ad4284..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsForm.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import React from 'react';
-import moment from 'moment';
-import { Intent } from '@blueprintjs/core';
-import { Formik } from 'formik';
-import { omit } from 'lodash';
-import intl from 'react-intl-universal';
-
-import 'style/pages/CashFlow/CashflowTransactionForm.scss';
-
-import { AppToaster } from 'components';
-import { CreateOwnerDrawingsFormSchema } from './OwnerDrawingsForm.schema';
-import OwnerDrawingsFormContent from './OwnerDrawingsFormContent';
-
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
-
-import withDialogActions from 'containers/Dialog/withDialogActions';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
-import { compose } from 'utils';
-
-const defaultInitialValues = {
- date: moment(new Date()).format('YYYY-MM-DD'),
- amount: '',
- transaction_number: '',
- transaction_type: 'onwers_drawing',
- reference_no: '',
- cashflow_account_id: '',
- credit_account_id: '',
- description: '',
- published: '',
-};
-
-/**
- * Owner drawings form.
- */
-function OwnerDrawingsForm({
- // #withDialogActions
- closeDialog,
-
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const {
- dialogName,
- accountId,
- submitPayload,
- createCashflowTransactionMutate,
- } = useMoneyOutDialogContext();
-
- // Initial form values.
- const initialValues = {
- ...defaultInitialValues,
- currency_code: base_currency,
- cashflow_account_id: accountId,
- };
- // Handles the form submit.
- const handleFormSubmit = (values, { setSubmitting, setErrors }) => {
- const form = {
- ...omit(values, ['currency_code']),
- published: submitPayload.publish,
- };
- setSubmitting(true);
- createCashflowTransactionMutate(form)
- .then(() => {
- closeDialog(dialogName);
-
- AppToaster.show({
- message: intl.get('cash_flow_transaction_success_message'),
- intent: Intent.SUCCESS,
- });
- })
- .finally(() => {
- setSubmitting(true);
- });
- };
-
- return (
-
-
-
- );
-}
-
-export default compose(
- withDialogActions,
- withCurrentOrganization(),
-)(OwnerDrawingsForm);
diff --git a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsForm.schema.js b/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsForm.schema.js
deleted file mode 100644
index dfc02dc6e..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsForm.schema.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as Yup from 'yup';
-import intl from 'react-intl-universal';
-import { DATATYPES_LENGTH } from 'common/dataTypes';
-
-const Schema = Yup.object().shape({
- date: Yup.date().required().label(intl.get('date')),
- amount: Yup.number().required().label(intl.get('amount')),
- transaction_number: Yup.string(),
- transaction_type: Yup.string().required(),
- reference_no: Yup.string(),
- credit_account_id: Yup.number()
- .required()
- .label(intl.get('cash_flow_transaction.label_equity_account')),
- cashflow_account_id: Yup.string().required(),
- description: Yup.string()
- .min(3)
- .max(DATATYPES_LENGTH.TEXT)
- .label(intl.get('description')),
- published: Yup.boolean(),
-});
-
-export const CreateOwnerDrawingsFormSchema = Schema;
diff --git a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormContent.js b/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormContent.js
deleted file mode 100644
index cab946864..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormContent.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from 'react';
-import { Form } from 'formik';
-
-import OwnerDrawingsFormFields from './OwnerDrawingsFormFields';
-import OwnerDrawingsFloatingActions from './OwnerDrawingsFloatingActions';
-
-/**
- * Owner drawings form content.
- */
-export default function OwnerDrawingsFormContent() {
- return (
-
- );
-}
diff --git a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormFields.js b/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormFields.js
index b3e08aedc..d38611321 100644
--- a/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormFields.js
+++ b/src/containers/Dialogs/MoneyOutDialog/OwnerDrawings/OwnerDrawingsFormFields.js
@@ -28,7 +28,7 @@ import {
handleDateChange,
} from 'utils';
import { CLASSES } from 'common/classes';
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
+import { useMoneyOutDialogContext } from '../MoneyOutDialogProvider';
/**
* Owner drawings form fields.
@@ -40,7 +40,7 @@ function OwnerDrawingsFormFields() {
const amountFieldRef = useAutofocus();
return (
-
+
{/*------------ Date -----------*/}
@@ -112,7 +112,6 @@ function OwnerDrawingsFormFields() {
onChange={(amount) => {
setFieldValue('amount', amount);
}}
-
inputRef={(ref) => (amountFieldRef.current = ref)}
intent={inputIntent({ error, touched })}
/>
@@ -185,7 +184,7 @@ function OwnerDrawingsFormFields() {
)}
-
+
);
}
diff --git a/src/containers/Dialogs/MoneyOutDialog/TransactionTypeFields.js b/src/containers/Dialogs/MoneyOutDialog/TransactionTypeFields.js
new file mode 100644
index 000000000..d18c9abab
--- /dev/null
+++ b/src/containers/Dialogs/MoneyOutDialog/TransactionTypeFields.js
@@ -0,0 +1,96 @@
+import React from 'react';
+import { FastField, ErrorMessage } from 'formik';
+import { FormGroup } from '@blueprintjs/core';
+import classNames from 'classnames';
+import {
+ FormattedMessage as T,
+ AccountsSuggestField,
+ FieldRequiredHint,
+ ListSelect,
+ Col,
+ Row,
+} from 'components';
+
+import { inputIntent } from 'utils';
+import { CLASSES } from 'common/classes';
+import { addMoneyOut } from '../../../common/cashflowOptions';
+
+import { useMoneyOutDialogContext } from './MoneyOutDialogProvider';
+
+/**
+ * Transaction type fields.
+ */
+function TransactionTypeFields() {
+ // Money in dialog context.
+ const { cashflowAccounts } = useMoneyOutDialogContext();
+
+ return (
+
+
+
+ {/*------------ Current account -----------*/}
+
+ {({ form, field: { value }, meta: { error, touched } }) => (
+ }
+ intent={inputIntent({ error, touched })}
+ helperText={}
+ minimal={true}
+ className={classNames(
+ CLASSES.FILL,
+ 'form-group--cashflow_account_id',
+ )}
+ >
+
+ form.setFieldValue('cashflow_account_id', id)
+ }
+ inputProps={{
+ intent: inputIntent({ error, touched }),
+ }}
+ />
+
+ )}
+
+ {/*------------ Transaction type -----------*/}
+
+
+
+ {({
+ form: { values, setFieldValue },
+ field: { value },
+ meta: { error, touched },
+ }) => (
+ }
+ labelInfo={}
+ helperText={}
+ intent={inputIntent({ error, touched })}
+ className={classNames(
+ CLASSES.FILL,
+ 'form-group--transaction_type',
+ )}
+ >
+ {
+ setFieldValue('transaction_type', type.value);
+ }}
+ filterable={false}
+ selectedItem={value}
+ selectedItemProp={'value'}
+ textProp={'name'}
+ popoverProps={{ minimal: true }}
+ />
+
+ )}
+
+
+
+
+ );
+}
+
+export default TransactionTypeFields;
diff --git a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFloatingActions.js b/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFloatingActions.js
deleted file mode 100644
index ce428f017..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFloatingActions.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import React from 'react';
-import { Intent, Button, Classes } from '@blueprintjs/core';
-import { useFormikContext } from 'formik';
-import { FormattedMessage as T } from 'components';
-
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
-
-import withDialogActions from 'containers/Dialog/withDialogActions';
-import { compose } from 'utils';
-
-function TransferToAccountFloatingActions({
- // #withDialogActions
- closeDialog,
-}) {
- // Formik context.
- const { isSubmitting, submitForm } = useFormikContext();
- // money in dialog context.
- const { dialogName, setSubmitPayload, submitPayload } =
- useMoneyOutDialogContext();
-
- // handle submit as draft button click.
- const handleSubmitDraftBtnClick = (event) => {
- setSubmitPayload({ publish: false });
- submitForm();
- };
-
- // Handle submit button click.
- const handleSubmittBtnClick = (event) => {
- setSubmitPayload({ publish: true });
- submitForm();
- };
-
- // Handle close button click.
- const handleCloseBtnClick = (event) => {
- closeDialog(dialogName);
- };
-
- return (
-
-
-
-
-
-
-
-
- );
-}
-
-export default compose(withDialogActions)(TransferToAccountFloatingActions);
diff --git a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountForm.js b/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountForm.js
deleted file mode 100644
index d2b4b16e3..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountForm.js
+++ /dev/null
@@ -1,92 +0,0 @@
-import React from 'react';
-import moment from 'moment';
-import { Intent } from '@blueprintjs/core';
-import { Formik } from 'formik';
-import { omit } from 'lodash';
-import intl from 'react-intl-universal';
-
-import 'style/pages/CashFlow/CashflowTransactionForm.scss';
-
-import { AppToaster } from 'components';
-import { CreateTransferToAccountFormSchema } from './TransferToAccountForm.schema';
-import TransferToAccountFromContent from './TransferToAccountFromContent';
-
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
-
-import withDialogActions from 'containers/Dialog/withDialogActions';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
-import { compose } from 'utils';
-
-const defaultInitialValues = {
- date: moment(new Date()).format('YYYY-MM-DD'),
- amount: '',
- transaction_number: '',
- transaction_type: 'transfer_from_account',
- reference_no: '',
- cashflow_account_id: '',
- credit_account_id: '',
- description: '',
- published: '',
-};
-
-/**
- * Transfer to account form.
- */
-function TransferToAccountForm({
- // #withDialogActions
- closeDialog,
-
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const {
- dialogName,
- accountId,
- createCashflowTransactionMutate,
- submitPayload,
- } = useMoneyOutDialogContext();
-
- // Initial form values.
- const initialValues = {
- ...defaultInitialValues,
- currency_code: base_currency,
- cashflow_account_id: accountId,
- };
-
- // Handles the form submit.
- const handleFormSubmit = (values, { setSubmitting, setErrors }) => {
- const form = {
- ...omit(values, ['currency_code']),
- published: submitPayload.publish,
- };
- setSubmitting(true);
- createCashflowTransactionMutate(form)
- .then(() => {
- closeDialog(dialogName);
-
- AppToaster.show({
- message: intl.get('cash_flow_transaction_success_message'),
- intent: Intent.SUCCESS,
- });
- })
- .finally(() => {
- setSubmitting(true);
- });
- };
-
- return (
-
-
-
- );
-}
-
-export default compose(
- withDialogActions,
- withCurrentOrganization(),
-)(TransferToAccountForm);
diff --git a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFormFields.js b/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFormFields.js
index 5bf120c87..7863a0637 100644
--- a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFormFields.js
+++ b/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFormFields.js
@@ -29,7 +29,7 @@ import {
handleDateChange,
} from 'utils';
import { CLASSES } from 'common/classes';
-import { useMoneyOutDialogContext } from '../MoneyOutProvider';
+import { useMoneyOutDialogContext } from '../MoneyOutDialogProvider';
/**
* Transfer to account form fields.
@@ -41,7 +41,7 @@ function TransferToAccountFormFields() {
const accountRef = useAutofocus();
return (
-
+
{/*------------ Date -----------*/}
@@ -190,7 +190,7 @@ function TransferToAccountFormFields() {
)}
-
+
);
}
diff --git a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFromContent.js b/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFromContent.js
deleted file mode 100644
index 508f0b330..000000000
--- a/src/containers/Dialogs/MoneyOutDialog/TransferToAccount/TransferToAccountFromContent.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react';
-import { Form } from 'formik';
-
-import TransferToAccountFormFields from './TransferToAccountFormFields';
-import TransferToAccountFloatingActions from './TransferToAccountFloatingActions';
-
-export default function TransferToAccountFromContent() {
- return (
-
- );
-}
diff --git a/src/containers/Dialogs/MoneyOutDialog/index.js b/src/containers/Dialogs/MoneyOutDialog/index.js
index abc346c36..2cf31320e 100644
--- a/src/containers/Dialogs/MoneyOutDialog/index.js
+++ b/src/containers/Dialogs/MoneyOutDialog/index.js
@@ -20,7 +20,7 @@ function MoneyOutDialog({
From e29db07c3249a6874bc72d64aa4d13d920209354 Mon Sep 17 00:00:00 2001
From: elforjani13 <39470382+elforjani13@users.noreply.github.com>
Date: Sat, 23 Oct 2021 20:59:25 +0200
Subject: [PATCH 3/3] feat: money in & out Hotkeys.
---
src/components/Dashboard/GlobalHotkeys.js | 13 ++++++++++---
.../Dialogs/MoneyInDialog/MoneyInFormFields.js | 7 +++++--
.../Dialogs/MoneyInDialog/TransactionTypeFields.js | 8 ++++----
src/containers/Dialogs/MoneyInDialog/index.js | 2 ++
.../Dialogs/MoneyOutDialog/MoneyOutFormFields.js | 6 ++++--
.../Dialogs/MoneyOutDialog/TransactionTypeFields.js | 8 ++++----
src/lang/en/index.json | 3 ++-
7 files changed, 31 insertions(+), 16 deletions(-)
diff --git a/src/components/Dashboard/GlobalHotkeys.js b/src/components/Dashboard/GlobalHotkeys.js
index 3ca7a2b0b..2bf734b9e 100644
--- a/src/components/Dashboard/GlobalHotkeys.js
+++ b/src/components/Dashboard/GlobalHotkeys.js
@@ -3,11 +3,16 @@ import { useHotkeys } from 'react-hotkeys-hook';
import { useHistory } from 'react-router-dom';
import { getDashboardRoutes } from 'routes/dashboard';
import withDashboardActions from 'containers/Dashboard/withDashboardActions';
+import withDialogActions from 'containers/Dialog/withDialogActions';
+
import { compose } from 'utils';
function GlobalHotkeys({
// #withDashboardActions
toggleSidebarExpend,
+
+ // #withDialogActions
+ openDialog,
}) {
const history = useHistory();
const routes = getDashboardRoutes();
@@ -16,8 +21,8 @@ function GlobalHotkeys({
.filter(({ hotkey }) => hotkey)
.map(({ hotkey }) => hotkey)
.toString();
-
- const handleSidebarToggleBtn = () => {
+
+ const handleSidebarToggleBtn = () => {
toggleSidebarExpend();
};
useHotkeys(
@@ -32,7 +37,9 @@ function GlobalHotkeys({
[history],
);
useHotkeys('ctrl+/', (event, handle) => handleSidebarToggleBtn());
+ useHotkeys('shift+q', (event, handle) => openDialog('money-in', {}));
+ useHotkeys('shift+d', (event, handle) => openDialog('money-out', {}));
return ;
}
-export default compose(withDashboardActions)(GlobalHotkeys);
+export default compose(withDashboardActions, withDialogActions)(GlobalHotkeys);
diff --git a/src/containers/Dialogs/MoneyInDialog/MoneyInFormFields.js b/src/containers/Dialogs/MoneyInDialog/MoneyInFormFields.js
index 1900e2479..08fcab957 100644
--- a/src/containers/Dialogs/MoneyInDialog/MoneyInFormFields.js
+++ b/src/containers/Dialogs/MoneyInDialog/MoneyInFormFields.js
@@ -1,4 +1,5 @@
import React from 'react';
+import { useFormikContext } from 'formik';
import { Classes } from '@blueprintjs/core';
import { If } from 'components';
@@ -11,15 +12,17 @@ import { useMoneyInDailogContext } from './MoneyInDialogProvider';
* Money in form fields.
*/
function MoneyInFormFields() {
+ const { values } = useFormikContext();
+
// Money in dialog context.
- const { accountId, accountType } = useMoneyInDailogContext();
+ const { accountId } = useMoneyInDailogContext();
return (
-
+
);
}
diff --git a/src/containers/Dialogs/MoneyInDialog/TransactionTypeFields.js b/src/containers/Dialogs/MoneyInDialog/TransactionTypeFields.js
index 1a62527b3..ecc3b0bb0 100644
--- a/src/containers/Dialogs/MoneyInDialog/TransactionTypeFields.js
+++ b/src/containers/Dialogs/MoneyInDialog/TransactionTypeFields.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { FastField, ErrorMessage } from 'formik';
+import { FastField, Field, ErrorMessage } from 'formik';
import { Classes, FormGroup } from '@blueprintjs/core';
import classNames from 'classnames';
import {
@@ -32,7 +32,7 @@ export default function TransactionTypeFields() {
{({ form, field: { value }, meta: { error, touched } }) => (
}
labelInfo={}
intent={inputIntent({ error, touched })}
helperText={}
@@ -57,7 +57,7 @@ export default function TransactionTypeFields() {
{/*------------ Transaction type -----------*/}
-
+
{({
form: { values, setFieldValue },
field: { value },
@@ -86,7 +86,7 @@ export default function TransactionTypeFields() {
/>
)}
-
+
diff --git a/src/containers/Dialogs/MoneyInDialog/index.js b/src/containers/Dialogs/MoneyInDialog/index.js
index e44241225..d5098a413 100644
--- a/src/containers/Dialogs/MoneyInDialog/index.js
+++ b/src/containers/Dialogs/MoneyInDialog/index.js
@@ -2,6 +2,7 @@ import React from 'react';
import intl from 'react-intl-universal';
import { Dialog, DialogSuspense } from 'components';
import withDialogRedux from 'components/DialogReduxConnect';
+
import { compose } from 'redux';
const MoneyInDialogContent = React.lazy(() => import('./MoneyInDialogContent'));
@@ -14,6 +15,7 @@ function MoneyInDialog({
payload = { account_type: null, account_id: null },
isOpen,
}) {
+
return (