validate method

  1. @override
Future<bool> validate()
override

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;
}