diff --git a/client/src/config/sidebarMenu.js b/client/src/config/sidebarMenu.js
index 0d2ce6457..1f904e8cd 100644
--- a/client/src/config/sidebarMenu.js
+++ b/client/src/config/sidebarMenu.js
@@ -95,7 +95,19 @@ export default [
text: ,
children: [],
},
-
+ {
+ text: ,
+ children: [
+ {
+ text: ,
+ href: '/expenses-list',
+ },
+ {
+ text: ,
+ href: '/expenses/new',
+ },
+ ],
+ },
{
text: ,
children: [
@@ -136,19 +148,6 @@ export default [
}
],
},
- {
- text: ,
- children: [
- {
- text: ,
- href: '/expenses-list',
- },
- {
- text: ,
- href: '/expenses/new',
- },
- ],
- },
{
divider: true,
},
diff --git a/client/src/containers/Accounts/AccountsChart.js b/client/src/containers/Accounts/AccountsChart.js
index d42ccb631..bb99b7825 100644
--- a/client/src/containers/Accounts/AccountsChart.js
+++ b/client/src/containers/Accounts/AccountsChart.js
@@ -1,7 +1,7 @@
import React, { useEffect, useState, useMemo, useCallback } from 'react';
import { Route, Switch } from 'react-router-dom';
import { Alert, Intent } from '@blueprintjs/core';
-import { useQuery } from 'react-query';
+import { useQuery, queryCache } from 'react-query';
import {
FormattedMessage as T,
FormattedHTMLMessage,
@@ -139,16 +139,22 @@ function AccountsChart({
}, []);
// Handle confirm account activation.
+
const handleConfirmAccountActive = useCallback(() => {
- requestInactiveAccount(inactiveAccount.id).then(() => {
- setInactiveAccount(false);
- AppToaster.show({
- message: formatMessage({
- id: 'the_account_has_been_successfully_inactivated',
- }),
- intent: Intent.SUCCESS,
+ requestInactiveAccount(inactiveAccount.id)
+ .then(() => {
+ setInactiveAccount(false);
+ AppToaster.show({
+ message: formatMessage({
+ id: 'the_account_has_been_successfully_inactivated',
+ }),
+ intent: Intent.SUCCESS,
+ });
+ queryCache.invalidateQueries('accounts-table');
+ })
+ .catch((error) => {
+ setInactiveAccount(false);
});
- });
}, [inactiveAccount, requestInactiveAccount, formatMessage]);
// Handle activate account click.
@@ -163,16 +169,21 @@ function AccountsChart({
// Handle activate account confirm.
const handleConfirmAccountActivate = useCallback(() => {
- requestActivateAccount(activateAccount.id).then(() => {
- setActivateAccount(false);
- AppToaster.show({
- message: formatMessage({
- id: 'the_account_has_been_successfully_activated',
- }),
- intent: Intent.SUCCESS,
+ requestActivateAccount(activateAccount.id)
+ .then(() => {
+ setActivateAccount(false);
+ AppToaster.show({
+ message: formatMessage({
+ id: 'the_account_has_been_successfully_activated',
+ }),
+ intent: Intent.SUCCESS,
+ });
+ queryCache.invalidateQueries('accounts-table');
+ })
+ .catch((error) => {
+ setActivateAccount(false);
});
- });
- });
+ }, [activateAccount, requestActivateAccount, formatMessage]);
const handleRestoreAccount = (account) => {};
diff --git a/client/src/containers/Accounts/AccountsDataTable.js b/client/src/containers/Accounts/AccountsDataTable.js
index b2b3e1420..dc189b593 100644
--- a/client/src/containers/Accounts/AccountsDataTable.js
+++ b/client/src/containers/Accounts/AccountsDataTable.js
@@ -114,7 +114,11 @@ function AccountsDataTable({
const handleNewParentAccount = useCallback(
(account) => {
- openDialog('account-form', { action: 'new_child', id: account.id });
+ openDialog('account-form', {
+ action: 'new_child',
+ parentAccountId: account.id,
+ accountTypeId: account.account_type_id,
+ });
},
[openDialog],
);
diff --git a/client/src/containers/Accounts/withAccountsActions.js b/client/src/containers/Accounts/withAccountsActions.js
index d366ff664..1fc68e5f1 100644
--- a/client/src/containers/Accounts/withAccountsActions.js
+++ b/client/src/containers/Accounts/withAccountsActions.js
@@ -10,7 +10,7 @@ import {
deleteBulkAccounts,
bulkActivateAccounts,
bulkInactiveAccounts,
- editAccount
+ editAccount,
} from 'store/accounts/accounts.actions';
const mapActionsToProps = (dispatch) => ({
@@ -22,9 +22,9 @@ const mapActionsToProps = (dispatch) => ({
requestActivateAccount: (id) => dispatch(activateAccount({ id })),
requestFetchAccount: (id) => dispatch(fetchAccount({ id })),
requestDeleteBulkAccounts: (ids) => dispatch(deleteBulkAccounts({ ids })),
- requestBulkActivateAccounts:(ids)=>dispatch(bulkActivateAccounts({ids})),
- requestBulkInactiveAccounts:(ids)=>dispatch(bulkInactiveAccounts({ids})),
- requestEditAccount:({id,form}) => dispatch(editAccount({id,form}))
+ requestBulkActivateAccounts: (ids) => dispatch(bulkActivateAccounts({ ids })),
+ requestBulkInactiveAccounts: (ids) => dispatch(bulkInactiveAccounts({ ids })),
+ requestEditAccount: (id, form) => dispatch(editAccount(id, form)),
});
-export default connect(null, mapActionsToProps);
\ No newline at end of file
+export default connect(null, mapActionsToProps);
diff --git a/client/src/containers/Dialogs/AccountFormDialog.container.js b/client/src/containers/Dialogs/AccountFormDialog.container.js
index a3e25ccca..3708a4c75 100644
--- a/client/src/containers/Dialogs/AccountFormDialog.container.js
+++ b/client/src/containers/Dialogs/AccountFormDialog.container.js
@@ -8,12 +8,16 @@ import withAccounts from 'containers/Accounts/withAccounts';
export const mapStateToProps = (state, props) => ({
dialogName: 'account-form',
+ accountId:
+ props.payload.action === 'edit' && props.payload.id
+ ? props.payload.id
+ : null,
});
const AccountFormDialogConnect = connect(mapStateToProps);
export default compose(
- AccountFormDialogConnect,
withDialogRedux(null, 'account-form'),
+ AccountFormDialogConnect,
withAccountsActions,
withAccountDetail,
withAccounts(({ accountsTypes, accounts }) => ({
diff --git a/client/src/containers/Dialogs/AccountFormDialog.js b/client/src/containers/Dialogs/AccountFormDialog.js
index 79a31d5c9..f9a5d0bd0 100644
--- a/client/src/containers/Dialogs/AccountFormDialog.js
+++ b/client/src/containers/Dialogs/AccountFormDialog.js
@@ -13,6 +13,7 @@ import {
import * as Yup from 'yup';
import { useFormik } from 'formik';
import { FormattedMessage as T, useIntl } from 'react-intl';
+import { If } from 'components';
import { omit, pick } from 'lodash';
import { useQuery, queryCache } from 'react-query';
import classNames from 'classnames';
@@ -61,14 +62,16 @@ function AccountFormDialog({
.nullable()
.required()
.label(formatMessage({ id: 'account_type_id' })),
- description: Yup.string().trim(),
+ description: Yup.string().nullable().trim(),
+ // parent_account_id: Yup.string().nullable(),
});
-
const initialValues = useMemo(
() => ({
account_type_id: null,
name: '',
description: '',
+ code: '',
+ type: '',
}),
[],
);
@@ -94,7 +97,11 @@ function AccountFormDialog({
} = useFormik({
enableReinitialize: true,
initialValues: {
- ...(payload.action === 'edit' && account ? account : initialValues),
+ // ...initialValues,
+ // ...(payload.action === 'edit' && account ? account : initialValues),
+
+ ...(payload.action === 'edit' &&
+ pick(account, Object.keys(initialValues))),
},
validationSchema: accountFormValidationSchema,
onSubmit: (values, { setSubmitting, setErrors }) => {
@@ -104,21 +111,10 @@ function AccountFormDialog({
: values.name;
if (payload.action === 'edit') {
- requestEditAccount({
- payload: payload.id,
- // form: { ...omit(values, [...exclude, 'account_type_id']) },
- form: {
- ...pick(values, [
- ...exclude,
- 'account_type_id',
- 'name',
- 'description',
- ]),
- },
- })
+ requestEditAccount(payload.id, values)
.then((response) => {
closeDialog(dialogName);
- queryCache.refetchQueries('accounts-table', { force: true });
+ queryCache.invalidateQueries('accounts-table', { force: true });
AppToaster.show({
message: formatMessage(
@@ -137,10 +133,13 @@ function AccountFormDialog({
setSubmitting(false);
});
} else {
- requestSubmitAccount({ form: { ...omit(values, exclude) } })
+ requestSubmitAccount({
+ payload: payload.parent_account_id,
+ form: { ...omit(values, exclude) },
+ })
.then((response) => {
closeDialog(dialogName);
- queryCache.refetchQueries('accounts-table', { force: true });
+ queryCache.invalidateQueries('accounts-table', { force: true });
AppToaster.show({
message: formatMessage(
@@ -155,6 +154,7 @@ function AccountFormDialog({
});
})
.catch((errors) => {
+ debugger;
const errorsTransformed = transformApiErrors(errors);
setErrors({ ...errorsTransformed });
setSubmitting(false);
@@ -227,7 +227,7 @@ function AccountFormDialog({
const fetchAccountsList = useQuery(
'accounts-list',
() => requestFetchAccounts(),
- { enabled: true },
+ { enabled: false },
);
// Fetches accounts types.
@@ -236,13 +236,13 @@ function AccountFormDialog({
async () => {
await requestFetchAccountTypes();
},
- { enabled: true },
+ { enabled: false },
);
// Fetch the given account id on edit mode.
const fetchAccount = useQuery(
['account', payload.id],
- (key, id) => requestFetchAccount(id),
+ (key, _id) => requestFetchAccount(_id),
{ enabled: false },
);
@@ -258,8 +258,13 @@ function AccountFormDialog({
if (payload.action === 'edit' && payload.id) {
fetchAccount.refetch();
- }
- }, [payload, fetchAccount, fetchAccountsList, fetchAccountsTypes]);
+ }
+ if (payload.action === 'new_child') {
+ setFieldValue('subaccount', true);
+ setFieldValue('parent_account_id', payload.parentAccountId);
+ setFieldValue('account_type_id', payload.accountTypeId);
+ }
+ }, [fetchAccount, fetchAccountsList, fetchAccountsTypes]);
const onChangeAccountType = useCallback(
(accountType) => {
@@ -367,7 +372,7 @@ function AccountFormDialog({
intent={errors.code && touched.code && Intent.DANGER}
helperText={}
inline={true}
- labelInfo={} />}
+ labelInfo={} />}
>
- {values.subaccount && (
+
}
className={classNames(
@@ -411,7 +417,7 @@ function AccountFormDialog({
labelProp={'name'}
/>
- )}
+
}
diff --git a/client/src/containers/Dialogs/CurrencyDialog.js b/client/src/containers/Dialogs/CurrencyDialog.js
index 37ceb8c28..f7959b22b 100644
--- a/client/src/containers/Dialogs/CurrencyDialog.js
+++ b/client/src/containers/Dialogs/CurrencyDialog.js
@@ -91,7 +91,7 @@ function CurrencyDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('currencies', { force: true });
+ queryCache.invalidateQueries('currencies');
})
.catch((error) => {
setSubmitting(false);
@@ -107,7 +107,7 @@ function CurrencyDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('currencies', { force: true });
+ queryCache.invalidateQueries('currencies');
})
.catch((error) => {
setSubmitting(false);
diff --git a/client/src/containers/Dialogs/ExchangeRateDialog.js b/client/src/containers/Dialogs/ExchangeRateDialog.js
index 7ea2a124f..af97adbc7 100644
--- a/client/src/containers/Dialogs/ExchangeRateDialog.js
+++ b/client/src/containers/Dialogs/ExchangeRateDialog.js
@@ -70,8 +70,10 @@ function ExchangeRateDialog({
[],
);
- const fetchExchangeRatesDialog = useQuery('exchange-rates-dialog', () =>
- requestFetchExchangeRates(),
+ const fetchExchangeRatesDialog = useQuery(
+ 'exchange-rates-dialog',
+ () => requestFetchExchangeRates(),
+ { manual: true },
);
const {
@@ -102,7 +104,7 @@ function ExchangeRateDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.removeQueries('exchange-rates-dialog', { force: true });
+ queryCache.invalidateQueries('exchange-rates-dialog');
})
.catch((error) => {
setSubmitting(false);
@@ -118,7 +120,7 @@ function ExchangeRateDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('exchange-rates-table', { force: true });
+ queryCache.invalidateQueries('exchange-rates-table');
})
.catch((errors) => {
if (
diff --git a/client/src/containers/Dialogs/InviteUserDialog.js b/client/src/containers/Dialogs/InviteUserDialog.js
index dc98b9d95..f629e9776 100644
--- a/client/src/containers/Dialogs/InviteUserDialog.js
+++ b/client/src/containers/Dialogs/InviteUserDialog.js
@@ -92,7 +92,7 @@ function InviteUserDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('users-table', { force: true });
+ queryCache.invalidateQueries('users-table');
})
.catch((error) => {
setSubmitting(false);
diff --git a/client/src/containers/Dialogs/ItemCategoryDialog.js b/client/src/containers/Dialogs/ItemCategoryDialog.js
index 8a6f7cc71..b2087ae6d 100644
--- a/client/src/containers/Dialogs/ItemCategoryDialog.js
+++ b/client/src/containers/Dialogs/ItemCategoryDialog.js
@@ -106,9 +106,7 @@ function ItemCategoryDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('items-categories-table', {
- force: true,
- });
+ queryCache.invalidateQueries('items-categories-table');
})
.catch((error) => {
setSubmitting(false);
@@ -124,9 +122,7 @@ function ItemCategoryDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('items-categories-table', {
- force: true,
- });
+ queryCache.invalidateQueries('items-categories-table');
})
.catch((error) => {
setSubmitting(false);
diff --git a/client/src/containers/Dialogs/UserFormDialog.js b/client/src/containers/Dialogs/UserFormDialog.js
index ae1954bf4..accdef28a 100644
--- a/client/src/containers/Dialogs/UserFormDialog.js
+++ b/client/src/containers/Dialogs/UserFormDialog.js
@@ -80,7 +80,7 @@ function UserFormDialog({
intent: Intent.SUCCESS,
});
setSubmitting(false);
- queryCache.refetchQueries('users-table', { force: true });
+ queryCache.invalidateQueries('users-table');
})
.catch((errors) => {
setSubmitting(false);
diff --git a/client/src/containers/Expenses/ExpenseForm.js b/client/src/containers/Expenses/ExpenseForm.js
index dd4dba147..6bcb28760 100644
--- a/client/src/containers/Expenses/ExpenseForm.js
+++ b/client/src/containers/Expenses/ExpenseForm.js
@@ -48,8 +48,6 @@ function ExpenseForm({
expenseId,
onFormSubmit,
onCancelForm,
- onClickAddNewRow,
- onClickRemoveRow,
}) {
const { formatMessage } = useIntl();
const [payload, setPayload] = useState({});
@@ -76,16 +74,13 @@ function ExpenseForm({
useEffect(() => {
if (expense && expense.id) {
changePageTitle(formatMessage({ id: 'edit_expense' }));
- // changePageSubtitle(`No. ${expenseDetail.payment_account_id}`);
} else {
changePageTitle(formatMessage({ id: 'new_expense' }));
}
- // @todo not functions just states.
- }, [changePageTitle, changePageSubtitle, expense, formatMessage]);
+ }, [changePageTitle, expense, formatMessage]);
const validationSchema = Yup.object().shape({
- beneficiary: Yup.string()
- .label(formatMessage({ id: 'beneficiary' })),
+ beneficiary: Yup.string().label(formatMessage({ id: 'beneficiary' })),
payment_account_id: Yup.string()
.required()
.label(formatMessage({ id: 'payment_account_' })),
@@ -272,7 +267,6 @@ function ExpenseForm({
const handleSubmitClick = useCallback(
(payload) => {
setPayload(payload);
- formik.resetForm();
formik.handleSubmit();
},
[setPayload, formik],
diff --git a/client/src/containers/Expenses/ExpenseTable.js b/client/src/containers/Expenses/ExpenseTable.js
index 733ac2912..162dfb9f3 100644
--- a/client/src/containers/Expenses/ExpenseTable.js
+++ b/client/src/containers/Expenses/ExpenseTable.js
@@ -51,7 +51,6 @@ function ExpenseTable({
setRow(newRows);
setFieldValue(
'categories',
-
newRows.map((row, index) => ({
...omit(row, ['rowType']),
index: index + 1,
diff --git a/client/src/containers/Preferences/General/General.js b/client/src/containers/Preferences/General/General.js
index d0a7fd82a..e9aea064c 100644
--- a/client/src/containers/Preferences/General/General.js
+++ b/client/src/containers/Preferences/General/General.js
@@ -193,8 +193,6 @@ function GeneralPreferences({
.label(formatMessage({ id: 'date_format_' })),
});
- const query = queryCache.refetchQueries('settings');
-
const {
values,
errors,
@@ -224,7 +222,7 @@ function GeneralPreferences({
});
setSubmitting(false);
resetForm();
- queryCache.refetchQueries('settings', { force: true });
+ queryCache.invalidateQueries('settings');
})
.catch((error) => {
setSubmitting(false);
diff --git a/client/src/containers/Preferences/Users/UsersList.js b/client/src/containers/Preferences/Users/UsersList.js
index c843d0217..0c28b6c94 100644
--- a/client/src/containers/Preferences/Users/UsersList.js
+++ b/client/src/containers/Preferences/Users/UsersList.js
@@ -79,7 +79,7 @@ function UsersListPreferences({
}),
intent: Intent.SUCCESS,
});
- queryCache.refetchQueries('users-table', { force: true });
+ queryCache.invalidateQueries('users-table');
})
.catch((error) => {
setInactiveUserState(false);
@@ -108,7 +108,6 @@ function UsersListPreferences({
);
// Handle confirm User delete
-
const handleConfirmUserDelete = useCallback(() => {
if (!deleteUserState) {
return;
@@ -122,7 +121,7 @@ function UsersListPreferences({
}),
intent: Intent.SUCCESS,
});
- queryCache.refetchQueries('users-table', { force: true });
+ queryCache.invalidateQueries('users-table');
})
.catch((errors) => {
setDeleteUserState(false);
diff --git a/client/src/containers/Views/ViewForm.js b/client/src/containers/Views/ViewForm.js
index 4c022e691..58fa48c93 100644
--- a/client/src/containers/Views/ViewForm.js
+++ b/client/src/containers/Views/ViewForm.js
@@ -78,8 +78,8 @@ function ViewForm({
const validationSchema = Yup.object().shape({
resource_name: Yup.string().required(),
- name: Yup.string().required(),
- logic_expression: Yup.string().required(),
+ name: Yup.string().required().label(intl.formatMessage({id:'name_'})),
+ logic_expression: Yup.string().required().label(intl.formatMessage({id:'logic_expression'})),
roles: Yup.array().of(
Yup.object().shape({
comparator: Yup.string().required(),
diff --git a/client/src/lang/en/index.js b/client/src/lang/en/index.js
index 8e44a0462..06e996664 100644
--- a/client/src/lang/en/index.js
+++ b/client/src/lang/en/index.js
@@ -450,6 +450,7 @@ export default {
as_date: 'As Date',
aging_before_days: 'Aging before days',
aging_periods: 'Aging periods',
+ name_:'name',
as: 'As',
receivable_aging_summary: 'Receivable Aging Summary',
customers: 'Customers',
@@ -525,4 +526,5 @@ export default {
journal_number_is_already_used: 'Journal number is already used.',
account_code_hint:
'A unique code/number for this account (limited to 10 characters)',
+ logic_expression: 'logic expression',
};
diff --git a/client/src/store/accounts/accounts.actions.js b/client/src/store/accounts/accounts.actions.js
index 6847186d6..65ff7f07d 100644
--- a/client/src/store/accounts/accounts.actions.js
+++ b/client/src/store/accounts/accounts.actions.js
@@ -6,44 +6,48 @@ export const fetchAccountTypes = () => {
return (dispatch, getState) =>
new Promise((resolve, reject) => {
ApiService.get('account_types')
- .then(response => {
+ .then((response) => {
dispatch({
type: t.ACCOUNT_TYPES_LIST_SET,
- account_types: response.data.account_types
+ account_types: response.data.account_types,
});
resolve(response);
})
- .catch(error => { reject(error); });
+ .catch((error) => {
+ reject(error);
+ });
});
};
export const fetchAccountsList = ({ query } = {}) => {
- return dispatch => new Promise((resolve, reject) => {
- dispatch({
- type: t.SET_DASHBOARD_REQUEST_LOADING,
+ return (dispatch) =>
+ new Promise((resolve, reject) => {
+ dispatch({
+ type: t.SET_DASHBOARD_REQUEST_LOADING,
+ });
+ ApiService.get('accounts', { params: query })
+ .then((response) => {
+ dispatch({
+ type: t.ACCOUNTS_PAGE_SET,
+ accounts: response.data.accounts,
+ customViewId: response.data.customViewId,
+ });
+ dispatch({
+ type: t.ACCOUNTS_ITEMS_SET,
+ accounts: response.data.accounts,
+ });
+ dispatch({
+ type: t.SET_DASHBOARD_REQUEST_COMPLETED,
+ });
+ resolve(response);
+ })
+ .catch((error) => {
+ dispatch({
+ type: t.SET_DASHBOARD_REQUEST_COMPLETED,
+ });
+ reject(error);
+ });
});
- ApiService.get('accounts', { params: query }).then(response => {
- dispatch({
- type: t.ACCOUNTS_PAGE_SET,
- accounts: response.data.accounts,
- customViewId: response.data.customViewId
- });
- dispatch({
- type: t.ACCOUNTS_ITEMS_SET,
- accounts: response.data.accounts
- });
- dispatch({
- type: t.SET_DASHBOARD_REQUEST_COMPLETED,
- });
- resolve(response);
- })
- .catch((error) => {
- dispatch({
- type: t.SET_DASHBOARD_REQUEST_COMPLETED,
- });
- reject(error);
- });
- });
};
export const fetchAccountsTable = ({ query } = {}) => {
@@ -54,7 +58,8 @@ export const fetchAccountsTable = ({ query } = {}) => {
if (pageQuery.filter_roles) {
pageQuery = {
...omit(pageQuery, ['filter_roles']),
- stringified_filter_roles: JSON.stringify(pageQuery.filter_roles) || '',
+ stringified_filter_roles:
+ JSON.stringify(pageQuery.filter_roles) || '',
};
}
dispatch({
@@ -69,11 +74,11 @@ export const fetchAccountsTable = ({ query } = {}) => {
dispatch({
type: t.ACCOUNTS_PAGE_SET,
accounts: response.data.accounts,
- customViewId: response.data.customViewId
+ customViewId: response.data.customViewId,
});
dispatch({
type: t.ACCOUNTS_ITEMS_SET,
- accounts: response.data.accounts
+ accounts: response.data.accounts,
});
dispatch({
type: t.ACCOUNTS_TABLE_LOADING,
@@ -94,29 +99,29 @@ export const fetchAccountsTable = ({ query } = {}) => {
};
export const fetchAccountsDataTable = ({ query }) => {
- return dispatch =>
+ return (dispatch) =>
new Promise((resolve, reject) => {
ApiService.get('accounts')
- .then(response => {
+ .then((response) => {
dispatch({
type: t.ACCOUNTS_DATA_TABLE,
- data: response.data
+ data: response.data,
});
})
- .catch(error => {
+ .catch((error) => {
reject(error);
});
});
};
export const submitAccount = ({ form }) => {
- return dispatch =>
+ return (dispatch) =>
new Promise((resolve, reject) => {
dispatch({
type: t.SET_DASHBOARD_REQUEST_LOADING,
});
ApiService.post('accounts', form)
- .then(response => {
+ .then((response) => {
dispatch({
type: t.ACCOUNT_ERRORS_CLEAR,
});
@@ -125,140 +130,147 @@ export const submitAccount = ({ form }) => {
});
resolve(response);
})
- .catch(error => {
+ .catch((error) => {
const { response } = error;
const { data } = response;
- const { errors } = data;
dispatch({
type: t.ACCOUNT_ERRORS_CLEAR,
});
- if (errors) {
+ if (error) {
dispatch({
type: t.ACCOUNT_ERRORS_SET,
- payload: { errors },
+ payload: { error },
});
}
dispatch({
type: t.SET_DASHBOARD_REQUEST_COMPLETED,
});
- reject(errors);
+ reject(data?.errors);
});
});
};
-export const editAccount = ({ id, form }) => {
- return dispatch => new Promise((resolve, reject) => {
- dispatch({
- type: t.SET_DASHBOARD_REQUEST_LOADING,
- });
- ApiService.post(`accounts/${id}`, form)
- .then(response => {
- dispatch({ type: t.CLEAR_ACCOUNT_FORM_ERRORS });
- dispatch({
- type: t.SET_DASHBOARD_REQUEST_COMPLETED,
- });
- resolve(response);
- })
- .catch(error => {
- const { response } = error;
- const { data } = response;
- const { errors } = data;
-
- dispatch({ type: t.CLEAR_ACCOUNT_FORM_ERRORS });
- if (errors) {
- dispatch({ type: t.ACCOUNT_FORM_ERRORS, errors });
- }
- dispatch({
- type: t.SET_DASHBOARD_REQUEST_COMPLETED,
- });
- reject(errors);
- });
- });
-};
-
-export const activateAccount = ({ id }) => {
- return dispatch => ApiService.post(`accounts/${id}/active`);
-};
-
-export const inactiveAccount = ({ id }) => {
- return dispatch => ApiService.post(`accounts/${id}/inactive`);
-};
-
-export const bulkActivateAccounts =({ids})=>{
-
- return dispatch => new Promise((resolve, reject) => {
-
- ApiService.post(`accounts/bulk/activate`, null, { params: { ids }}).then((response) => {
- dispatch({
- type: t.BULK_ACTIVATE_ACCOUNTS,
- payload: { ids }
- });
- resolve(response);
- }).catch((error) => {
- reject(error);
- });
- });
-}
-
-export const bulkInactiveAccounts =({ids})=>{
-
- return dispatch => new Promise((resolve, reject) => {
-
- ApiService.post(`accounts/bulk/inactivate`, null, { params: { ids }}).then((response) => {
- dispatch({
- type: t.BULK_INACTIVATE_ACCOUNTS,
- payload: { ids }
- });
- resolve(response);
- }).catch((error) => {
- reject(error);
- });
- });
-}
-
-
-export const deleteAccount = ({ id }) => {
- return dispatch => new Promise((resolve, reject) => {
- ApiService.delete(`accounts/${id}`).then((response) => {
- dispatch({ type: t.ACCOUNT_DELETE, id });
- resolve(response);
- }).catch((error) => {
- reject(error.response.data.errors || []);
- });
- });
-};
-
-export const deleteBulkAccounts = ({ ids }) => {
- return dispatch => new Promise((resolve, reject) => {
- ApiService.delete(`accounts`, { params: { ids }}).then((response) => {
- dispatch({
- type: t.ACCOUNTS_BULK_DELETE,
- payload: { ids }
- });
- resolve(response);
- }).catch((error) => {
- const { response } = error;
- const { data } = response;
- const { errors } = data;
-
- reject(errors);
- });
- });
-};
-
-export const fetchAccount = ({ id }) => {
- return dispatch =>
+export const editAccount = (id, form) => {
+ return (dispatch) =>
new Promise((resolve, reject) => {
- ApiService.get(`accounts/${id}`)
- .then(response => {
+ dispatch({
+ type: t.SET_DASHBOARD_REQUEST_LOADING,
+ });
+ ApiService.post(`accounts/${id}`, form)
+ .then((response) => {
+ dispatch({ type: t.CLEAR_ACCOUNT_FORM_ERRORS });
dispatch({
- type: t.ACCOUNT_SET,
- account: response.data.account
+ type: t.SET_DASHBOARD_REQUEST_COMPLETED,
});
resolve(response);
})
- .catch(error => {
+ .catch((error) => {
+ const { response } = error;
+ const { data } = response;
+ // const { errors } = data;
+
+ dispatch({ type: t.CLEAR_ACCOUNT_FORM_ERRORS });
+ if (error) {
+ dispatch({ type: t.ACCOUNT_FORM_ERRORS, error });
+ }
+ dispatch({
+ type: t.SET_DASHBOARD_REQUEST_COMPLETED,
+ });
+ reject(data?.errors);
+ });
+ });
+};
+
+export const activateAccount = ({ id }) => {
+ return (dispatch) => ApiService.post(`accounts/${id}/active`);
+};
+
+export const inactiveAccount = ({ id }) => {
+ return (dispatch) => ApiService.post(`accounts/${id}/inactive`);
+};
+
+export const bulkActivateAccounts = ({ ids }) => {
+ return (dispatch) =>
+ new Promise((resolve, reject) => {
+ ApiService.post(`accounts/bulk/activate`, null, { params: { ids } })
+ .then((response) => {
+ dispatch({
+ type: t.BULK_ACTIVATE_ACCOUNTS,
+ payload: { ids },
+ });
+ resolve(response);
+ })
+ .catch((error) => {
+ reject(error);
+ });
+ });
+};
+
+export const bulkInactiveAccounts = ({ ids }) => {
+ return (dispatch) =>
+ new Promise((resolve, reject) => {
+ ApiService.post(`accounts/bulk/inactivate`, null, { params: { ids } })
+ .then((response) => {
+ dispatch({
+ type: t.BULK_INACTIVATE_ACCOUNTS,
+ payload: { ids },
+ });
+ resolve(response);
+ })
+ .catch((error) => {
+ reject(error);
+ });
+ });
+};
+
+export const deleteAccount = ({ id }) => {
+ return (dispatch) =>
+ new Promise((resolve, reject) => {
+ ApiService.delete(`accounts/${id}`)
+ .then((response) => {
+ dispatch({ type: t.ACCOUNT_DELETE, id });
+ resolve(response);
+ })
+ .catch((error) => {
+ reject(error.response.data.errors || []);
+ });
+ });
+};
+
+export const deleteBulkAccounts = ({ ids }) => {
+ return (dispatch) =>
+ new Promise((resolve, reject) => {
+ ApiService.delete(`accounts`, { params: { ids } })
+ .then((response) => {
+ dispatch({
+ type: t.ACCOUNTS_BULK_DELETE,
+ payload: { ids },
+ });
+ resolve(response);
+ })
+ .catch((error) => {
+ const { response } = error;
+ const { data } = response;
+ // const { errors } = data;
+
+ reject(data?.errors);
+ });
+ });
+};
+
+export const fetchAccount = ({ id }) => {
+ return (dispatch) =>
+ new Promise((resolve, reject) => {
+ ApiService.get(`accounts/${id}`)
+ .then((response) => {
+ dispatch({
+ type: t.ACCOUNT_SET,
+ account: response.data.account,
+ });
+ resolve(response);
+ })
+ .catch((error) => {
reject(error);
});
});