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