validate method

  1. @override
String? validate(
  1. BuildContext context,
  2. String fieldName,
  3. String? value
)
override

Function to validate the form input. It takes a string and returns an String error message if the input is invalid or null if the input is valid.

Implementation

@override
String? validate(
  BuildContext context,
  String fieldName,
  String? value,
) {
  _longErrorMessage = null;
  _shortErrorMessage = null;

  if (value != null && value.isNotEmpty) {
    final l10n = context.l10n;

    try {
      final number = int.parse(value);
      if (max == null && min != null) {
        if (number < min!) {
          _shortErrorMessage = l10n.invalidMessage;
          _longErrorMessage = l10n.invalidRangeMin(min!);
        }
      } else if (min == null && max != null) {
        if (number > max!) {
          _shortErrorMessage = l10n.invalidMessage;
          _longErrorMessage = l10n.invalidRangeMax(max!);
        }
      } else if ((min != null &&
          max != null &&
          (number < min! || number > max!))) {
        _shortErrorMessage = l10n.invalidMessage;
        _longErrorMessage = l10n.invalidRange(min!, max!);
      }
    } catch (e) {
      _shortErrorMessage = l10n.invalidMessage;
      _longErrorMessage = l10n.invalidNumber;
    }
  }

  _isValid = _shortErrorMessage == null;
  return _shortErrorMessage;
}