update error messages and validation rules

This commit is contained in:
Dieter Stinglhamber 2021-10-18 09:15:54 +02:00
parent 989d05ea76
commit c204aaabae
2 changed files with 32 additions and 10 deletions

View File

@ -54,15 +54,9 @@ const ApiTokenCreateView = () => {
message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }), message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),
}); });
} catch (err) { } catch (err) {
// FIXME when API errors are ready
const errors = formatAPIErrors(err.response.data); const errors = formatAPIErrors(err.response.data);
const fieldsErrors = Object.keys(errors).reduce((acc, current) => { actions.setErrors(errors);
acc[current] = errors[current].id;
return acc;
}, {});
actions.setErrors(fieldsErrors);
toggleNotification({ toggleNotification({
type: 'warning', type: 'warning',
message: get(err, 'response.data.message', 'notification.error'), message: get(err, 'response.data.message', 'notification.error'),
@ -182,7 +176,15 @@ const ApiTokenCreateView = () => {
<GridItem key="name" col={6} xs={12}> <GridItem key="name" col={6} xs={12}>
<TextInput <TextInput
name="name" name="name"
error={errors.name && formatMessage({ id: errors.name })} error={
errors.name
? formatMessage(
errors.name?.id
? errors.name
: { id: errors.name, defaultMessage: errors.name }
)
: null
}
label={formatMessage({ label={formatMessage({
id: 'Settings.apiTokens.form.name', id: 'Settings.apiTokens.form.name',
defaultMessage: 'Name', defaultMessage: 'Name',
@ -198,7 +200,18 @@ const ApiTokenCreateView = () => {
defaultMessage: 'Description', defaultMessage: 'Description',
})} })}
name="description" name="description"
error={errors.description && formatMessage({ id: errors.description })} error={
errors.description
? formatMessage(
errors.description?.id
? errors.description
: {
id: errors.description,
defaultMessage: errors.description,
}
)
: null
}
onChange={handleChange} onChange={handleChange}
> >
{values.description} {values.description}
@ -212,7 +225,15 @@ const ApiTokenCreateView = () => {
defaultMessage: 'Token type', defaultMessage: 'Token type',
})} })}
value={values.type} value={values.type}
error={errors.type && formatMessage({ id: errors.type })} error={
errors.type
? formatMessage(
errors.type?.id
? errors.type
: { id: errors.type, defaultMessage: errors.type }
)
: null
}
onChange={value => { onChange={value => {
handleChange({ target: { name: 'type', value } }); handleChange({ target: { name: 'type', value } });
}} }}

View File

@ -7,6 +7,7 @@ const schema = yup.object().shape({
.string(translatedErrors.string) .string(translatedErrors.string)
.oneOf(['read-only', 'full-access']) .oneOf(['read-only', 'full-access'])
.required(translatedErrors.required), .required(translatedErrors.required),
description: yup.string().nullable(),
}); });
export default schema; export default schema;