validate method
FutureOr<ValidationResult?>
validate(
- BuildContext context,
- T? value,
- FormValidationMode state
override
Validates the given value
and returns a validation result.
This method performs the actual validation logic and should return null if the value is valid, or a ValidationResult describing the validation error if invalid.
Parameters:
context
(BuildContext): The build context for localization accessvalue
(T?): The value to validate (may be null)lifecycle
(FormValidationMode): The current validation trigger mode
Returns a FutureOr<ValidationResult?> that is null for valid values or contains error information for invalid values.
Implementation
@override
FutureOr<ValidationResult?> validate(
BuildContext context, T? value, FormValidationMode state) {
var localizations = Localizations.of(context, ShadcnLocalizations);
var compare = _compare(value, this.value);
switch (type) {
case CompareType.greater:
if (compare <= 0) {
return InvalidResult(
message ?? localizations.formGreaterThan(this.value),
state: state);
}
break;
case CompareType.greaterOrEqual:
if (compare < 0) {
return InvalidResult(
message ?? localizations.formGreaterThanOrEqualTo(this.value),
state: state);
}
break;
case CompareType.less:
if (compare >= 0) {
return InvalidResult(
message ?? localizations.formLessThan(this.value),
state: state);
}
break;
case CompareType.lessOrEqual:
if (compare > 0) {
return InvalidResult(
message ?? localizations.formLessThanOrEqualTo(this.value),
state: state);
}
break;
case CompareType.equal:
if (compare != 0) {
return InvalidResult(message ?? localizations.formEqualTo(this.value),
state: state);
}
break;
}
return null;
}