From 0ff11d503703269c7cd4eee3e73ca6838a166ad8 Mon Sep 17 00:00:00 2001 From: Necessary Lion Date: Sun, 16 Apr 2023 20:27:15 +0700 Subject: [PATCH] added more options (#8) --- CHANGELOG.md | 4 +++ README.md | 2 ++ lib/component.dart | 72 +++++++++++++++++++++++++--------------------- pubspec.yaml | 2 +- 4 files changed, 46 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a81665..793635e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.6 + +* Added support to hide card holder name input + ## 0.0.5 * Added support for controller to set input value initially diff --git a/README.md b/README.md index 8206a9c..abb3dad 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,11 @@ CreditCardForm( | `onChanged` required | listen for input values changed | | `cardNumberLabel` | label for card number input | | `cardHolderLabel` | label for card holder name input | +| `hideCardHolder` | default (false) | | `expiredDateLabel` | label for expired date input | | `cvcLabel` | label for security code | | `cvcLength` | length for security code. default (4) | +| `cvcIcon` | Icon widget for security code. | | `fontSize` | font size for all inputs and labels. default (16) | | `controller` | `CreditCardController()` to set initial value to inputs | diff --git a/lib/component.dart b/lib/component.dart index c096a88..b55b879 100644 --- a/lib/component.dart +++ b/lib/component.dart @@ -3,12 +3,14 @@ part of credit_card_form; class CreditCardForm extends StatefulWidget { final String? cardNumberLabel; final String? cardHolderLabel; + final bool? hideCardHolder; final String? expiredDateLabel; final String? cvcLabel; + final Widget? cvcIcon; + final int? cvcLength; final double fontSize; final CreditCardTheme? theme; final Function(CreditCardResult) onChanged; - final int? cvcLength; final CreditCardController? controller; const CreditCardForm({ super.key, @@ -16,10 +18,12 @@ class CreditCardForm extends StatefulWidget { required this.onChanged, this.cardNumberLabel, this.cardHolderLabel, + this.hideCardHolder = false, this.expiredDateLabel, this.cvcLabel, - this.fontSize = 16, + this.cvcIcon, this.cvcLength = 4, + this.fontSize = 16, this.controller, }); @@ -51,6 +55,18 @@ class _CreditCardFormState extends State { CardType? cardType; + @override + void dispose() { + controllers.forEach((key, value) => value.dispose()); + super.dispose(); + } + + @override + void initState() { + handleController(); + super.initState(); + } + @override Widget build(BuildContext context) { CreditCardTheme theme = widget.theme ?? CreditCardLightTheme(); @@ -98,20 +114,21 @@ class _CreditCardFormState extends State { ), ), ), - TextInputWidget( - theme: theme, - fontSize: widget.fontSize, - label: widget.cardHolderLabel ?? 'Card holder name', - controller: controllers['card_holder_name'], - bottom: 1, - onChanged: (val) { - setState(() { - params['card_holder_name'] = val; - }); - emitResult(); - }, - keyboardType: TextInputType.name, - ), + if (widget.hideCardHolder == false) + TextInputWidget( + theme: theme, + fontSize: widget.fontSize, + label: widget.cardHolderLabel ?? 'Card holder name', + controller: controllers['card_holder_name'], + bottom: 1, + onChanged: (val) { + setState(() { + params['card_holder_name'] = val; + }); + emitResult(); + }, + keyboardType: TextInputType.name, + ), Row( children: [ Expanded( @@ -152,11 +169,12 @@ class _CreditCardFormState extends State { ], suffixIcon: Padding( padding: const EdgeInsets.all(8), - child: Image.asset( - 'images/cvc.png', - package: 'credit_card_form', - height: 25, - ), + child: widget.cvcIcon ?? + Image.asset( + 'images/cvc.png', + package: 'credit_card_form', + height: 25, + ), ), ), ) @@ -167,12 +185,6 @@ class _CreditCardFormState extends State { ); } - @override - void dispose() { - controllers.forEach((key, value) => value.dispose()); - super.dispose(); - } - emitResult() { List res = params['expired_date'].split('/'); CreditCardResult result = CreditCardResult( @@ -223,10 +235,4 @@ class _CreditCardFormState extends State { }); } } - - @override - void initState() { - handleController(); - super.initState(); - } } diff --git a/pubspec.yaml b/pubspec.yaml index 1886c13..228dbc2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: credit_card_form description: Flutter Credit/Debit Card Form. -version: 0.0.5 +version: 0.0.6 homepage: https://github.com/necessarylion/flutter-credit-card-form environment: