diff --git a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js index 845caa98f4..3275ebf89c 100644 --- a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +++ b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js @@ -86,20 +86,12 @@ export function ReviewWorkflowsCreateView() { return workflow; } catch (error) { - // TODO: the current implementation of `formatAPIError` prints all error messages of all details, - // which get's hairy when we have duplicated-name errors, because the same error message is printed - // several times. What we want instead in these scenarios is to print only the error summary and - // display the individual error messages for each field. This is a workaround, until we change the - // implementation of `formatAPIError`. + // TODO: this would benefit from a utility to get a formik error + // representation from an API error if ( error.response.data?.error?.name === 'ValidationError' && error.response.data?.error?.details?.errors?.length > 0 ) { - toggleNotification({ - type: 'warning', - message: error.response.data.error.message, - }); - setInitialErrors( error.response.data?.error?.details?.errors.reduce((acc, error) => { set(acc, error.path, error.message); @@ -107,13 +99,13 @@ export function ReviewWorkflowsCreateView() { return acc; }, {}) ); - } else { - toggleNotification({ - type: 'warning', - message: formatAPIError(error), - }); } + toggleNotification({ + type: 'warning', + message: formatAPIError(error), + }); + return null; } }; diff --git a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js index 7342b1f398..8a8a2ba256 100644 --- a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +++ b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js @@ -97,20 +97,12 @@ export function ReviewWorkflowsEditView() { return res; } catch (error) { - // TODO: the current implementation of `formatAPIError` prints all error messages of all details, - // which get's hairy when we have duplicated-name errors, because the same error message is printed - // several times. What we want instead in these scenarios is to print only the error summary and - // display the individual error messages for each field. This is a workaround, until we change the - // implementation of `formatAPIError`. + // TODO: this would benefit from a utility to get a formik error + // representation from an API error if ( error.response.data?.error?.name === 'ValidationError' && error.response.data?.error?.details?.errors?.length > 0 ) { - toggleNotification({ - type: 'warning', - message: error.response.data.error.message, - }); - setInitialErrors( error.response.data?.error?.details?.errors.reduce((acc, error) => { set(acc, error.path, error.message); @@ -118,13 +110,13 @@ export function ReviewWorkflowsEditView() { return acc; }, {}) ); - } else { - toggleNotification({ - type: 'warning', - message: formatAPIError(error), - }); } + toggleNotification({ + type: 'warning', + message: formatAPIError(error), + }); + return null; } };