From a7126c2b32bc28f774a47459b4f1b16224b895b5 Mon Sep 17 00:00:00 2001 From: jonRreeves Date: Thu, 2 Nov 2023 16:27:25 +0000 Subject: [PATCH] optional card holder validation --- lib/credit_card_form.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/credit_card_form.dart b/lib/credit_card_form.dart index 3f6459d8..2a94ba60 100644 --- a/lib/credit_card_form.dart +++ b/lib/credit_card_form.dart @@ -41,6 +41,8 @@ class CreditCardForm extends StatefulWidget { this.isHolderNameVisible = true, this.isCardNumberVisible = true, this.isExpiryDateVisible = true, + this.cardHolderLength, + this.cardHolderValidationMessage = 'Maximum length is 30', }) : super(key: key); final String cardNumber; @@ -50,6 +52,7 @@ class CreditCardForm extends StatefulWidget { final String cvvValidationMessage; final String dateValidationMessage; final String numberValidationMessage; + final String cardHolderValidationMessage; final void Function(CreditCardModel) onCreditCardModelChange; final Color themeColor; final Color textColor; @@ -59,6 +62,8 @@ class CreditCardForm extends StatefulWidget { final bool isHolderNameVisible; final bool isCardNumberVisible; final bool isExpiryDateVisible; + // optional cardHolderLength param, if provided, will do validation + final int? cardHolderLength; final GlobalKey formKey; final InputDecoration cardNumberDecoration; @@ -318,6 +323,12 @@ class _CreditCardFormState extends State { FocusScope.of(context).unfocus(); onCreditCardModelChange(creditCardModel); }, + validator: (String? value) { + if (widget.cardHolderLength != null && value!.length > widget.cardHolderLength!) { + return widget.cardHolderValidationMessage; + } + return null; + }, ), ), ),