refactor: use form's centralized error management

This commit is contained in:
kasia.oczkowska
2024-12-20 10:00:48 +00:00
parent 71e8928812
commit dae7c365ef
3 changed files with 2 additions and 44 deletions

View File

@@ -1,18 +0,0 @@
// Helpers to extract errors received from the API
export const getGeneralErrorMessage = ({ error, fallbackMessage }) => {
if (!error) {
return;
}
const errors = error?.response?.data?.errors;
const generalError = errors?.general;
if (generalError && Array.isArray(generalError)) {
return generalError.join(' ');
}
if (!errors) {
return error?.message || fallbackMessage;
}
};

View File

@@ -236,7 +236,6 @@
"editUser.status": "Status",
"editUser.submit": "Update",
"editUser.successfullyUpdated": "The user has been updated.",
"editUser.error": "Error while updating the user.",
"userList.fullName": "Full name",
"userList.email": "Email",
"userList.role": "Role",

View File

@@ -24,7 +24,6 @@ import useRoles from 'hooks/useRoles.ee';
import useAdminUpdateUser from 'hooks/useAdminUpdateUser';
import useAdminUser from 'hooks/useAdminUser';
import useCurrentUserAbility from 'hooks/useCurrentUserAbility';
import { getGeneralErrorMessage } from 'helpers/errors';
function generateRoleOptions(roles) {
return roles?.map(({ name: label, id: value }) => ({ label, value }));
@@ -76,7 +75,7 @@ export default function EditUser() {
const currentUserAbility = useCurrentUserAbility();
const canUpdateRole = currentUserAbility.can('update', 'Role');
const handleUserUpdate = async (userDataToUpdate, e, setError) => {
const handleUserUpdate = async (userDataToUpdate) => {
try {
await updateUser({
fullName: userDataToUpdate.fullName,
@@ -96,29 +95,7 @@ export default function EditUser() {
} catch (error) {
const errors = error?.response?.data?.errors;
if (errors) {
const fieldNames = Object.keys(defaultValues);
Object.entries(errors).forEach(([fieldName, fieldErrors]) => {
if (fieldNames.includes(fieldName) && Array.isArray(fieldErrors)) {
setError(fieldName, {
type: 'fieldRequestError',
message: fieldErrors.join(', '),
});
}
});
}
const generalError = getGeneralErrorMessage({
error,
fallbackMessage: formatMessage('editUser.error'),
});
if (generalError) {
setError('root.general', {
type: 'requestError',
message: generalError,
});
}
throw errors || error;
}
};