validator method

Future<AntdFormRuleResult?> validator(
  1. dynamic value,
  2. dynamic formValue,
  3. AntdFormTrigger? trigger
)

Implementation

Future<AntdFormRuleResult?> validator(
    dynamic value, dynamic formValue, AntdFormTrigger? trigger) async {
  var rules = [...(widget.rules ?? [])];
  if (required && existsRequired != true) {
    rules.add(const AntdFormRule(required: true));
  }
  List<AntdFormRuleMessage> messages = [];
  for (var rule in rules) {
    if (rule.trigger != null && trigger != null && rule.trigger != trigger) {
      continue;
    }

    var validList = rule.buildValidList();
    for (var valid in validList) {
      var message =
          await valid.buildValidator()?.call(widget, value, formValue);
      if (message != null) {
        messages.add(AntdFormRuleMessage(
            message: message, warningOnly: rule.warningOnly));
      }
      if (messages.isNotEmpty && widget.validateFirst == true) {
        break;
      }
    }
  }
  return AntdFormRuleResult(
      name: widget.name, value: value, errorMessages: messages);
}