validate method
Implementation
@override
Future<bool> validate() async {
value = const CarpenterEditorValidating();
final errors = <CarpenterFieldId, String>{};
for (final field in fields) {
final result = await field.validate();
if (!result.isValid) {
errors[field.descriptor.id] = result.message!;
}
}
value = errors.isEmpty
? CarpenterEditorReady(dirty: fields.any((field) => field.dirty))
: CarpenterEditorValidationFailure(errors);
return errors.isEmpty;
}