File tree Expand file tree Collapse file tree 4 files changed +20
-12
lines changed Expand file tree Collapse file tree 4 files changed +20
-12
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,7 @@ class CardUtils {
7878 return year;
7979 }
8080
81+ /// Removes non numerical characters from the string
8182 static String getCleanedNumber (String text) {
8283 if (text == null ) {
8384 return '' ;
Original file line number Diff line number Diff line change @@ -51,4 +51,17 @@ class Utils {
5151 throw new InvalidEmailException (charge.email);
5252 }
5353 }
54+
55+ /// Add double spaces after every 4th character
56+ static String addSpaces (String text) {
57+ var buffer = new StringBuffer ();
58+ for (int i = 0 ; i < text.length; i++ ) {
59+ buffer.write (text[i]);
60+ var nonZeroIndex = i + 1 ;
61+ if (nonZeroIndex % 4 == 0 && nonZeroIndex != text.length) {
62+ buffer.write (' ' ); // Add double spaces.
63+ }
64+ }
65+ return buffer.toString ();
66+ }
5467}
Original file line number Diff line number Diff line change 11import 'package:flutter/material.dart' ;
22import 'package:flutter/services.dart' ;
3+ import 'package:flutter_paystack/src/common/utils.dart' ;
34
45class CardMonthInputFormatter extends TextInputFormatter {
56 String previousText;
@@ -42,16 +43,7 @@ class CardNumberInputFormatter extends TextInputFormatter {
4243 return newValue;
4344 }
4445
45- var buffer = new StringBuffer ();
46- for (int i = 0 ; i < text.length; i++ ) {
47- buffer.write (text[i]);
48- var nonZeroIndex = i + 1 ;
49- if (nonZeroIndex % 4 == 0 && nonZeroIndex != text.length) {
50- buffer.write (' ' ); // Add double spaces.
51- }
52- }
53-
54- var string = buffer.toString ();
46+ var string = Utils .addSpaces (text);
5547 return newValue.copyWith (
5648 text: string,
5749 selection: new TextSelection .collapsed (offset: string.length));
Original file line number Diff line number Diff line change 11import 'package:flutter/material.dart' ;
22import 'package:flutter_paystack/src/common/card_utils.dart' ;
3+ import 'package:flutter_paystack/src/common/utils.dart' ;
34import 'package:flutter_paystack/src/models/card.dart' ;
45import 'package:flutter_paystack/src/widgets/buttons.dart' ;
56import 'package:flutter_paystack/src/widgets/input/cvc_field.dart' ;
@@ -36,8 +37,9 @@ class _CardInputState extends State<CardInput> {
3637 super .initState ();
3738 numberController = new TextEditingController ();
3839 numberController.addListener (_getCardTypeFrmNumber);
39- numberController.text =
40- _card != null && _card.number != null ? _card.number : null ;
40+ if (_card? .number != null ) {
41+ numberController.text = Utils .addSpaces (_card.number);
42+ }
4143 }
4244
4345 @override
You can’t perform that action at this time.
0 commit comments