validateInput static method

String? validateInput(
  1. String? value,
  2. bool required,
  3. String? requiredMessage,
  4. InputValidator? validator,
)

Build common validator function for input fields

Implementation

static String? validateInput(
  String? value,
  bool required,
  String? requiredMessage,
  model.InputValidator? validator,
) {
  if (value == null || value.isEmpty) {
    return required
        ? Utils.translateWithFallback('ensemble.input.required',
            requiredMessage ?? 'This field is required')
        : null;
  }

  if (validator != null) {
    ValidationBuilder? builder;
    if (validator.minLength != null) {
      builder = ValidationBuilder().minLength(validator.minLength!,
          Utils.translateOrNull('ensemble.input.validation.minimumLength'));
    }
    if (validator.maxLength != null) {
      builder = (builder ?? ValidationBuilder()).maxLength(
          validator.maxLength!,
          Utils.translateOrNull('ensemble.input.validation.maximumLength'));
    }
    if (validator.regex != null) {
      builder = (builder ?? ValidationBuilder()).regExp(
          RegExp(validator.regex!),
          validator.regexError ??
              Utils.translateWithFallback(
                  'ensemble.input.validation.invalidInput',
                  'This field has invalid value'));
    }
    if (builder != null) {
      return builder.build().call(value);
    }
  }
  return null;
}