Skip to content

Commit 5cd2eb8

Browse files
add some examples and add more migration items
1 parent 684d899 commit 5cd2eb8

File tree

2 files changed

+51
-15
lines changed

2 files changed

+51
-15
lines changed

doc/migration.md

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -633,10 +633,35 @@ FormBuilderValidators.bic(regex: someRegex);
633633
// New API:
634634
Validators.bic(isBic: (input)=>someRegex.hasMatch(input));
635635
```
636-
TODO continue from here!!!
637-
- `FormBuilderValidators.creditCardCVC()` - requires the field's value to be a valid credit card CVC number.
638-
- `FormBuilderValidators.creditCardExpirationDate()` - requires the field's value to be a valid credit card expiration date and can check if not expired yet.
639-
- `FormBuilderValidators.creditCard()` - requires the field's value to be a valid credit card number.
636+
- `FormBuilderValidators.creditCardCVC()`: there is no equivalent to [this validator](https://github.com/flutter-form-builder-ecosystem/form_builder_validators/blob/17e982bb849dc68365f8fbc93d5a2323ee891c89/lib/src/finance/credit_card_cvc_validator.dart#L29). Something close would be:
637+
```dart
638+
// Old API:
639+
FormBuilderValidators.creditCardCVC(
640+
errorText: 'invalid CVC number'
641+
);
642+
643+
// New API:
644+
Validators.and([
645+
Validators.int(null, 'invalid CVC number'),
646+
Validators.equalLength(3, equalLengthMsg: 'invalid CVC number'),
647+
]);
648+
```
649+
- `FormBuilderValidators.creditCardExpirationDate()`: there is no equivalent to [this validator](https://github.com/flutter-form-builder-ecosystem/form_builder_validators/blob/17e982bb849dc68365f8fbc93d5a2323ee891c89/lib/src/finance/credit_card_expiration_date_validator.dart#L52).
650+
- `FormBuilderValidators.creditCard()`
651+
```dart
652+
// Old API:
653+
FormBuilderValidators.creditCard(
654+
errorText: 'invalid credit card',
655+
);
656+
657+
// New API:
658+
Validators.creditCard(
659+
creditCardMsg: 'invalid credit card',
660+
);
661+
662+
```
663+
TODO continue from here!!!!
664+
640665
- `FormBuilderValidators.iban()` - requires the field's to be a valid IBAN.
641666

642667
### Identity validators

example/lib/generic_examples.dart

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,14 @@ class GenericExamplesPage extends StatelessWidget {
6464
textInputAction: TextInputAction.next,
6565
autovalidateMode: AutovalidateMode.always,
6666
),
67-
/* TODO implement the email and url validator
6867
// Email Validator
6968
TextFormField(
7069
decoration: const InputDecoration(
7170
labelText: 'Email Field',
7271
prefixIcon: Icon(Icons.email),
7372
),
7473
keyboardType: TextInputType.emailAddress,
75-
validator: v.email(),
74+
validator: V.required(V.email()),
7675
autofillHints: const <String>[AutofillHints.email],
7776
textInputAction: TextInputAction.next,
7877
autovalidateMode: AutovalidateMode.always,
@@ -84,12 +83,11 @@ class GenericExamplesPage extends StatelessWidget {
8483
prefixIcon: Icon(Icons.link),
8584
),
8685
keyboardType: TextInputType.url,
87-
validator: v.url(),
86+
validator: V.required(V.url()),
8887
autofillHints: const <String>[AutofillHints.url],
8988
textInputAction: TextInputAction.next,
9089
autovalidateMode: AutovalidateMode.always,
9190
),
92-
*/
9391
// Min Length Validator
9492
TextFormField(
9593
decoration: const InputDecoration(
@@ -142,19 +140,17 @@ class GenericExamplesPage extends StatelessWidget {
142140
textInputAction: TextInputAction.next,
143141
autovalidateMode: AutovalidateMode.always,
144142
),
145-
/* TODO implement contains substring
146143
// Contains Validator
147144
TextFormField(
148145
decoration: const InputDecoration(
149146
labelText: 'Contains "test"',
150147
prefixIcon: Icon(Icons.search),
151148
),
152-
validator: FormBuilderValidators.contains('test'),
149+
validator: V.required(V.contains('test')),
153150
textInputAction: TextInputAction.next,
154151
autovalidateMode: AutovalidateMode.always,
155152
),
156153

157-
*/
158154
// Match Validator
159155
TextFormField(
160156
decoration: const InputDecoration(
@@ -165,15 +161,14 @@ class GenericExamplesPage extends StatelessWidget {
165161
textInputAction: TextInputAction.next,
166162
autovalidateMode: AutovalidateMode.always,
167163
),
168-
/* TODO implement id, uuid, credit cart, and phone number validators
169164
// IP Validator
170165
TextFormField(
171166
decoration: const InputDecoration(
172167
labelText: 'IP Field',
173168
prefixIcon: Icon(Icons.computer),
174169
),
175170
keyboardType: TextInputType.number,
176-
validator: v.ip(),
171+
validator: V.required(V.ip()),
177172
textInputAction: TextInputAction.next,
178173
autovalidateMode: AutovalidateMode.always,
179174
),
@@ -184,7 +179,7 @@ class GenericExamplesPage extends StatelessWidget {
184179
labelText: 'UUID Field',
185180
prefixIcon: Icon(Icons.code),
186181
),
187-
validator: v.uuid(),
182+
validator: V.required(V.uuid()),
188183
textInputAction: TextInputAction.next,
189184
autovalidateMode: AutovalidateMode.always,
190185
),
@@ -195,11 +190,12 @@ class GenericExamplesPage extends StatelessWidget {
195190
prefixIcon: Icon(Icons.credit_card),
196191
),
197192
keyboardType: TextInputType.number,
198-
validator: FormBuilderValidators.creditCard(),
193+
validator: V.required(V.creditCard()),
199194
autofillHints: const <String>[AutofillHints.creditCardNumber],
200195
textInputAction: TextInputAction.next,
201196
autovalidateMode: AutovalidateMode.always,
202197
),
198+
/* TODO implement id, uuid, credit cart, and phone number validators
203199
// Phone Number Validator
204200
TextFormField(
205201
decoration: const InputDecoration(
@@ -237,6 +233,21 @@ class GenericExamplesPage extends StatelessWidget {
237233
textInputAction: TextInputAction.done,
238234
autovalidateMode: AutovalidateMode.always,
239235
),
236+
TextFormField(
237+
decoration: const InputDecoration(
238+
labelText: 'CVC number validator',
239+
prefixIcon: Icon(Icons.numbers),
240+
),
241+
keyboardType: TextInputType.number,
242+
validator: V.required(
243+
V.and(<Validator<String>>[
244+
V.int(),
245+
V.equalLength(3),
246+
]),
247+
),
248+
textInputAction: TextInputAction.done,
249+
autovalidateMode: AutovalidateMode.always,
250+
),
240251
],
241252
),
242253
),

0 commit comments

Comments
 (0)