fix: correctly parse dates on customer edit

This commit is contained in:
Rafael Taranto 2025-02-21 18:21:29 +00:00
parent 48eb658c20
commit 7a4d3af8b1
2 changed files with 29 additions and 18 deletions

View file

@ -147,19 +147,25 @@ const Wizard = ({
onSubmit={onContinue} onSubmit={onContinue}
initialValues={stepOptions.initialValues} initialValues={stepOptions.initialValues}
validationSchema={stepOptions.schema}> validationSchema={stepOptions.schema}>
<Form className={classes.form}> {({ errors }) => (
<stepOptions.Component <Form className={classes.form}>
selectedValues={selectedValues} <stepOptions.Component
customInfoRequirementOptions={customInfoRequirementOptions} selectedValues={selectedValues}
{...stepOptions.props} customInfoRequirementOptions={customInfoRequirementOptions}
/> errors={errors}
<div className={classes.submit}> {...stepOptions.props}
{error && <ErrorMessage>Failed to save</ErrorMessage>} />
<Button className={classes.button} type="submit"> <div className={classes.submit}>
{isLastStep ? 'Add Data' : 'Next'} {error && <ErrorMessage>Failed to save</ErrorMessage>}
</Button> {Object.keys(errors).length > 0 && (
</div> <ErrorMessage>{Object.values(errors)[0]}</ErrorMessage>
</Form> )}
<Button className={classes.button} type="submit">
{isLastStep ? 'Add Data' : 'Next'}
</Button>
</div>
</Form>
)}
</Formik> </Formik>
</Modal> </Modal>
</> </>

View file

@ -453,14 +453,16 @@ const customerDataSchemas = {
documentNumber: Yup.string().required(), documentNumber: Yup.string().required(),
dateOfBirth: Yup.string() dateOfBirth: Yup.string()
.test({ .test({
test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val)) test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val)),
message: 'Date must be in format YYYY-MM-DD'
}) })
.required(), .required(),
gender: Yup.string().required(), gender: Yup.string().required(),
country: Yup.string().required(), country: Yup.string().required(),
expirationDate: Yup.string() expirationDate: Yup.string()
.test({ .test({
test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val)) test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val)),
message: 'Date must be in format YYYY-MM-DD'
}) })
.required() .required()
}), }),
@ -543,9 +545,12 @@ const tryFormatDate = rawDate => {
} }
const formatDates = values => { const formatDates = values => {
R.forEach(elem => { R.map(
values[elem] = tryFormatDate(values[elem]) elem =>
})(['dateOfBirth', 'expirationDate']) (values[elem] = format('yyyyMMdd')(
parse(new Date(), 'yyyy-MM-dd', values[elem])
))
)(['dateOfBirth', 'expirationDate'])
return values return values
} }