From a1e36f84be704a2efce55c1bfd40ba6b733d53e5 Mon Sep 17 00:00:00 2001 From: Hugo Pointcheval Date: Fri, 26 Aug 2022 13:42:01 +0200 Subject: [PATCH] feat(form): add raw form validator --- .../wyatt_form_bloc/lib/src/form/form_validator.dart | 4 ++++ .../src/validators/form/every_input_validator.dart | 11 ++++++++--- .../lib/src/validators/validators.dart | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/wyatt_form_bloc/lib/src/form/form_validator.dart b/packages/wyatt_form_bloc/lib/src/form/form_validator.dart index 15cdc16a..958d4e3e 100644 --- a/packages/wyatt_form_bloc/lib/src/form/form_validator.dart +++ b/packages/wyatt_form_bloc/lib/src/form/form_validator.dart @@ -28,4 +28,8 @@ abstract class FormValidator { .every((validator) => validator.pure); FormStatus validate(FormData form); + + FormStatus rawValidate( + List> validators, + ); } diff --git a/packages/wyatt_form_bloc/lib/src/validators/form/every_input_validator.dart b/packages/wyatt_form_bloc/lib/src/validators/form/every_input_validator.dart index dccc622c..fba42286 100644 --- a/packages/wyatt_form_bloc/lib/src/validators/form/every_input_validator.dart +++ b/packages/wyatt_form_bloc/lib/src/validators/form/every_input_validator.dart @@ -29,9 +29,14 @@ class EveryInputValidator extends FormValidator { return FormStatus.pure; } - if (form - .validators() - .any((validator) => validator.valid == false)) { + return rawValidate(form.validators()); + } + + @override + FormStatus rawValidate( + List> validators, + ) { + if (validators.any((validator) => validator.valid == false)) { return FormStatus.invalid; } diff --git a/packages/wyatt_form_bloc/lib/src/validators/validators.dart b/packages/wyatt_form_bloc/lib/src/validators/validators.dart index ae73b127..b9eaa4b6 100644 --- a/packages/wyatt_form_bloc/lib/src/validators/validators.dart +++ b/packages/wyatt_form_bloc/lib/src/validators/validators.dart @@ -14,6 +14,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +export 'form/every_input_validator.dart'; export 'inputs/base/regex_validator.dart'; export 'inputs/base/text_validator.dart'; export 'inputs/boolean.dart';