Merge pull request #104 from sartography/feature/date_form_validations

Feature/date form validations
This commit is contained in:
Kevin Burnett 2023-01-16 15:09:36 -08:00 committed by GitHub
commit 34f6239185
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 31 additions and 6 deletions

View File

@ -138,6 +138,34 @@ export default function TaskShow() {
return null;
};
const getFieldsWithDateValidations = (
jsonSchema: any,
formData: any,
errors: any
) => {
if ('properties' in jsonSchema) {
Object.keys(jsonSchema.properties).forEach((propertyKey: string) => {
const propertyMetadata = jsonSchema.properties[propertyKey];
if (
'minimumDate' in propertyMetadata &&
propertyMetadata.minimumDate === 'today'
) {
const dateToday = new Date();
const dateValue = formData[propertyKey];
if (dateValue) {
const dateValueObject = new Date(dateValue);
const dateValueString = dateValueObject.toISOString().split('T')[0];
const dateTodayString = dateToday.toISOString().split('T')[0];
if (dateTodayString > dateValueString) {
errors[propertyKey].addError('must be today or after');
}
}
}
});
}
return errors;
};
const formElement = (taskToUse: any) => {
let formUiSchema;
let taskData = taskToUse.data;
@ -184,12 +212,9 @@ export default function TaskShow() {
);
}
function customValidate(formData: any, errors: any) {
if (formData.pass1 !== formData.pass2) {
errors.pass2.addError("Passwords don't match");
}
return errors;
}
const customValidate = (formData: any, errors: any) => {
return getFieldsWithDateValidations(jsonSchema, formData, errors);
};
return (
<Grid fullWidth condensed>