validator method

HbValidatorFnType? validator()

Implementation

HbValidatorFnType validator() {
  // 自定义了validator,就使用自定义的validator
  if (widget.data.validator != null) {
    return widget.data.validator;
  }
  switch (widget.data.validatorType) {
    case HbValidatorType.email:
      return FormBuilderValidators.compose([
        FormBuilderValidators.required(),
        FormBuilderValidators.email(),
      ]);
    case HbValidatorType.password:
      return FormBuilderValidators.compose([
        FormBuilderValidators.required(),
        FormBuilderValidators.password(),
      ]);
    case HbValidatorType.confirmPass:
      return (String? v) {
        v = v!.trim();
        var passwordVerifyFn = FormBuilderValidators.compose([
          FormBuilderValidators.required(),
          FormBuilderValidators.password(),
        ]);
        var err = passwordVerifyFn(v);
        if (err != null) return err;
        if (v != widget.data.preController?.text) {
          return HbCommonLocalizations.current.confirmPasswordError;
        }
        return null;
      };
    case HbValidatorType.require:
    case HbValidatorType.code:
      return FormBuilderValidators.required();
  }
}