submitForm method
Implementation
Future<SubmissionResult> submitForm() async {
final formState = Data.maybeOf<FormState>(this);
assert(formState != null, 'Form not found');
final formController = Data.maybeOf<FormController>(this);
assert(formController != null, 'Form not found');
final values = <FormKey, dynamic>{};
final errors = <FormKey, ValidationResult>{};
for (var entry in formController!._attachedInputs.entries) {
var key = entry.key;
var value = entry.value;
values[key] = value.value;
}
formController.revalidate(this, FormValidationMode.submitted);
for (var entry in formController._validity.entries) {
var key = entry.key;
var value = await entry.value;
if (value != null) {
errors[key] = value;
}
}
if (errors.isNotEmpty) {
return SubmissionResult(values, errors);
}
formState?.widget.onSubmit?.call(this, values);
return SubmissionResult(values, errors);
}