fix : handle errors message with item categories.

This commit is contained in:
elforjani3
2021-01-02 14:52:49 +02:00
parent 792c96c344
commit 792f39a8f9
3 changed files with 31 additions and 9 deletions

View File

@@ -80,8 +80,16 @@ function ItemCategoryFormDialogContent({
[], [],
); );
const transformErrors = (errors, { setErrors }) => {
if (errors.find((error) => error.type === 'CATEGORY_NAME_EXISTS')) {
setErrors({
name: formatMessage({ id: 'category_name_exists' }),
});
}
};
// Handles the form submit. // Handles the form submit.
const handleFormSubmit = (values, { setSubmitting }) => { const handleFormSubmit = (values, { setSubmitting, setErrors }) => {
setSubmitting(true); setSubmitting(true);
const form = { ...values }; const form = { ...values };
const afterSubmit = () => { const afterSubmit = () => {
@@ -100,7 +108,9 @@ function ItemCategoryFormDialogContent({
}); });
afterSubmit(response); afterSubmit(response);
}; };
const onError = ({ response }) => {
const onError = (errors) => {
transformErrors(errors, { setErrors });
setSubmitting(false); setSubmitting(false);
}; };
if (isNewMode) { if (isNewMode) {

View File

@@ -935,5 +935,8 @@ export default {
opening_average_cost: 'Opening average cost', opening_average_cost: 'Opening average cost',
opening_cost_: 'Opening cost ', opening_cost_: 'Opening cost ',
opening_date_: 'Opening date ', opening_date_: 'Opening date ',
no_results:'No results.' no_results: 'No results.',
the_invoice_cannot_be_deleted:
'The invoice cannot be deleted cause has associated payment transactions',
category_name_exists:'Category name exists'
}; };

View File

@@ -2,11 +2,20 @@ import ApiService from 'services/ApiService';
import t from 'store/types'; import t from 'store/types';
export const submitItemCategory = ({ form }) => { export const submitItemCategory = ({ form }) => {
return (dispatch) => { return (dispatch) =>
return ApiService.post('item_categories', { ...form }); new Promise((resolve, reject) => {
}; ApiService.post('item_categories', form)
}; .then((response) => {
resolve(response);
})
.catch((error) => {
const { response } = error;
const { data } = response;
reject(data?.errors);
});
});
};
export const fetchItemCategories = ({ query }) => { export const fetchItemCategories = ({ query }) => {
return (dispatch, getState) => return (dispatch, getState) =>
new Promise((resolve, reject) => { new Promise((resolve, reject) => {