|
1 | 1 | import 'package:flutter/material.dart'; |
| 2 | +import 'package:flutter/src/services/text_formatter.dart'; |
2 | 3 |
|
3 | 4 | import '../flutter_credit_card.dart'; |
4 | 5 | import 'masked_text_controller.dart'; |
5 | 6 | import 'utils/constants.dart'; |
| 7 | +import 'utils/helpers.dart'; |
6 | 8 | import 'utils/typedefs.dart'; |
7 | 9 | import 'utils/validators.dart'; |
8 | 10 |
|
@@ -35,6 +37,7 @@ class CreditCardForm extends StatefulWidget { |
35 | 37 | this.cardHolderValidator, |
36 | 38 | this.onFormComplete, |
37 | 39 | this.disableCardNumberAutoFillHints = false, |
| 40 | + this.isCardHolderNameUpperCase = false, |
38 | 41 | super.key, |
39 | 42 | }); |
40 | 43 |
|
@@ -134,6 +137,9 @@ class CreditCardForm extends StatefulWidget { |
134 | 137 | /// [https://github.com/flutter/flutter/issues/104604](https://github.com/flutter/flutter/issues/104604). |
135 | 138 | final bool disableCardNumberAutoFillHints; |
136 | 139 |
|
| 140 | + /// When true card holder field will make all the input value to uppercase |
| 141 | + final bool isCardHolderNameUpperCase; |
| 142 | + |
137 | 143 | @override |
138 | 144 | State<CreditCardForm> createState() => _CreditCardFormState(); |
139 | 145 | } |
@@ -298,6 +304,14 @@ class _CreditCardFormState extends State<CreditCardForm> { |
298 | 304 | textInputAction: TextInputAction.done, |
299 | 305 | autofillHints: const <String>[AutofillHints.creditCardName], |
300 | 306 | onEditingComplete: _onHolderNameEditComplete, |
| 307 | + textCapitalization: widget.isCardHolderNameUpperCase |
| 308 | + ? TextCapitalization.characters |
| 309 | + : TextCapitalization.none, |
| 310 | + inputFormatters: widget.isCardHolderNameUpperCase |
| 311 | + ? <TextInputFormatter>[ |
| 312 | + UpperCaseTextFormatter(), |
| 313 | + ] |
| 314 | + : null, |
301 | 315 | validator: widget.cardHolderValidator, |
302 | 316 | ), |
303 | 317 | ), |
|
0 commit comments