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 {
78
78
return year;
79
79
}
80
80
81
+ /// Removes non numerical characters from the string
81
82
static String getCleanedNumber (String text) {
82
83
if (text == null ) {
83
84
return '' ;
Original file line number Diff line number Diff line change @@ -51,4 +51,17 @@ class Utils {
51
51
throw new InvalidEmailException (charge.email);
52
52
}
53
53
}
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
+ }
54
67
}
Original file line number Diff line number Diff line change 1
1
import 'package:flutter/material.dart' ;
2
2
import 'package:flutter/services.dart' ;
3
+ import 'package:flutter_paystack/src/common/utils.dart' ;
3
4
4
5
class CardMonthInputFormatter extends TextInputFormatter {
5
6
String previousText;
@@ -42,16 +43,7 @@ class CardNumberInputFormatter extends TextInputFormatter {
42
43
return newValue;
43
44
}
44
45
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);
55
47
return newValue.copyWith (
56
48
text: string,
57
49
selection: new TextSelection .collapsed (offset: string.length));
Original file line number Diff line number Diff line change 1
1
import 'package:flutter/material.dart' ;
2
2
import 'package:flutter_paystack/src/common/card_utils.dart' ;
3
+ import 'package:flutter_paystack/src/common/utils.dart' ;
3
4
import 'package:flutter_paystack/src/models/card.dart' ;
4
5
import 'package:flutter_paystack/src/widgets/buttons.dart' ;
5
6
import 'package:flutter_paystack/src/widgets/input/cvc_field.dart' ;
@@ -36,8 +37,9 @@ class _CardInputState extends State<CardInput> {
36
37
super .initState ();
37
38
numberController = new TextEditingController ();
38
39
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
+ }
41
43
}
42
44
43
45
@override
You can’t perform that action at this time.
0 commit comments