feat: add error message display to operator contact info

This commit is contained in:
Sérgio Salgado 2021-09-09 19:02:28 +01:00 committed by Josh Harvey
parent 94672423eb
commit ff474ee507
2 changed files with 67 additions and 52 deletions

View file

@ -128,7 +128,7 @@ const ContactInfo = ({ wizard }) => {
phone: Yup.string(), phone: Yup.string(),
email: Yup.string() email: Yup.string()
.email('Please enter a valid email address') .email('Please enter a valid email address')
.required(), .required('An email is required'),
website: Yup.string(), website: Yup.string(),
companyNumber: Yup.string() companyNumber: Yup.string()
}) })
@ -182,6 +182,9 @@ const ContactInfo = ({ wizard }) => {
} }
} }
const getErrorMsg = formikErrors =>
!R.isNil(formikErrors.email) ? formikErrors.email : null
return ( return (
<> <>
<div className={classes.header}> <div className={classes.header}>
@ -223,6 +226,7 @@ const ContactInfo = ({ wizard }) => {
setEditing(false) setEditing(false)
setError(null) setError(null)
}}> }}>
{({ errors }) => (
<Form> <Form>
<PromptWhenDirty /> <PromptWhenDirty />
<div className={classes.row}> <div className={classes.row}>
@ -261,6 +265,11 @@ const ContactInfo = ({ wizard }) => {
onFocus={() => setError(null)} onFocus={() => setError(null)}
/> />
</div> </div>
{editing && !!getErrorMsg(errors) && (
<ErrorMessage className={classes.formErrorMsg}>
{getErrorMsg(errors)}
</ErrorMessage>
)}
<div className={classnames(classes.row, classes.submit)}> <div className={classnames(classes.row, classes.submit)}>
{editing && ( {editing && (
<> <>
@ -270,11 +279,14 @@ const ContactInfo = ({ wizard }) => {
<Link color="secondary" type="reset"> <Link color="secondary" type="reset">
Cancel Cancel
</Link> </Link>
{error && <ErrorMessage>Failed to save changes</ErrorMessage>} {error && (
<ErrorMessage>Failed to save changes</ErrorMessage>
)}
</> </>
)} )}
</div> </div>
</Form> </Form>
)}
</Formik> </Formik>
</div> </div>
{!wizard && ( {!wizard && (

View file

@ -62,6 +62,9 @@ const global = {
marginTop: 4, marginTop: 4,
marginLeft: 16 marginLeft: 16
} }
},
formErrorMsg: {
margin: [[0, 0, 20, 0]]
} }
} }