selfprivacy.org.app/lib/logic/cubit/forms/validations/validations.dart

33 lines
1.1 KiB
Dart
Raw Normal View History

2021-01-06 19:35:57 +02:00
import 'package:cubit_form/cubit_form.dart';
import 'package:easy_localization/easy_localization.dart';
2021-01-06 19:35:57 +02:00
abstract class LengthStringValidation extends ValidationModel<String> {
2022-06-05 22:36:32 +03:00
LengthStringValidation(super.predicate, super.errorMessage);
2021-01-06 19:35:57 +02:00
@override
2022-06-05 22:36:32 +03:00
String? check(final String val) {
final int length = val.length;
final String errorMessage =
errorMassage.replaceAll('[]', length.toString());
return test(val) ? errorMessage : null;
2021-01-06 19:35:57 +02:00
}
}
class LengthStringNotEqualValidation extends LengthStringValidation {
2022-05-04 22:32:24 +03:00
/// String must be equal to [length]
2022-06-05 22:36:32 +03:00
LengthStringNotEqualValidation(final int length)
: super(
(final n) => n.length != length,
'validations.length_not_equal'.tr(args: [length.toString()]),
);
}
class LengthStringLongerValidation extends LengthStringValidation {
2022-05-04 22:32:24 +03:00
/// String must be shorter than or equal to [length]
2022-06-05 22:36:32 +03:00
LengthStringLongerValidation(final int length)
: super(
(final n) => n.length > length,
'validations.length_longer'.tr(args: [length.toString()]),
);
}