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}>
{({ errors }) => (
<Form className={classes.form}> <Form className={classes.form}>
<stepOptions.Component <stepOptions.Component
selectedValues={selectedValues} selectedValues={selectedValues}
customInfoRequirementOptions={customInfoRequirementOptions} customInfoRequirementOptions={customInfoRequirementOptions}
errors={errors}
{...stepOptions.props} {...stepOptions.props}
/> />
<div className={classes.submit}> <div className={classes.submit}>
{error && <ErrorMessage>Failed to save</ErrorMessage>} {error && <ErrorMessage>Failed to save</ErrorMessage>}
{Object.keys(errors).length > 0 && (
<ErrorMessage>{Object.values(errors)[0]}</ErrorMessage>
)}
<Button className={classes.button} type="submit"> <Button className={classes.button} type="submit">
{isLastStep ? 'Add Data' : 'Next'} {isLastStep ? 'Add Data' : 'Next'}
</Button> </Button>
</div> </div>
</Form> </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
} }