formValidateUI method
Validates form data against the table's field definitions.
This method performs comprehensive validation of input data based on the validators defined for each table field. It creates a form validator instance and processes all field validations.
Parameters:
data
- A map of field names to values that need to be validated
Returns a FormResult containing both the validation results and the processed form data.
Example:
var formResult = await table.formValidateUI({
'name': 'John Doe',
'email': 'john@example.com',
'age': '25',
});
if (formResult.result.success) {
// Process valid form data
print('Form is valid');
} else {
// Handle validation errors
print('Validation errors: ${formResult.result.errors}');
}
Implementation
Future<FormResult> formValidateUI(
Map<String, Object?> data,
) async {
Map<String, List<Future<FieldValidateResult> Function(dynamic)>> fields =
{};
var exteraData = <String, Object?>{};
for (final field in this.fields) {
fields[field.name] = field.validators.map((validator) {
return (value) async {
var result = await validator(value);
return FieldValidateResult(
error: result,
success: result.isEmpty,
);
};
}).toList();
exteraData[field.name] = data[field.name];
}
FormValidator formValidator = FormValidator(
fields: fields,
name: '${name}_form',
extraData: exteraData,
);
var res = await formValidator.validateAndForm();
return FormResult(
form: res.form,
result: res.result,
);
}