@test-glide/payment-react-native 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/components/BivoCVCInput.js +17 -24
- package/lib/module/components/BivoCVCInput.js.map +1 -1
- package/lib/module/components/BivoCardInput.js +23 -30
- package/lib/module/components/BivoCardInput.js.map +1 -1
- package/lib/module/components/BivoTextInput.js +18 -25
- package/lib/module/components/BivoTextInput.js.map +1 -1
- package/lib/module/core/Collector.js +2 -1
- package/lib/module/core/Collector.js.map +1 -1
- package/lib/typescript/src/components/BivoCVCInput.d.ts +3 -3
- package/lib/typescript/src/components/BivoCVCInput.d.ts.map +1 -1
- package/lib/typescript/src/components/BivoCardInput.d.ts +3 -3
- package/lib/typescript/src/components/BivoCardInput.d.ts.map +1 -1
- package/lib/typescript/src/components/BivoTextInput.d.ts +3 -3
- package/lib/typescript/src/components/BivoTextInput.d.ts.map +1 -1
- package/lib/typescript/src/core/Collector.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/BivoCVCInput.tsx +38 -23
- package/src/components/BivoCardInput.tsx +57 -35
- package/src/components/BivoTextInput.tsx +80 -66
- package/src/core/Collector.ts +2 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useState } from
|
|
4
|
-
import { View, TextInput, Text, StyleSheet, Image } from
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View, TextInput, Text, StyleSheet, Image } from 'react-native';
|
|
5
5
|
import { Icons } from "../assets/index.js";
|
|
6
|
-
import { jsx as _jsx,
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
7
|
export const BivoCVCInput = ({
|
|
8
8
|
collector,
|
|
9
9
|
fieldName,
|
|
@@ -15,7 +15,7 @@ export const BivoCVCInput = ({
|
|
|
15
15
|
containerStyle,
|
|
16
16
|
textStyle
|
|
17
17
|
}) => {
|
|
18
|
-
const [value, setValue] = useState(
|
|
18
|
+
const [value, setValue] = useState('');
|
|
19
19
|
const handleChange = text => {
|
|
20
20
|
setValue(text);
|
|
21
21
|
collector.setField(fieldName, text, onStateChange, required, regex, errorMsg);
|
|
@@ -34,24 +34,17 @@ export const BivoCVCInput = ({
|
|
|
34
34
|
secureTextEntry: true,
|
|
35
35
|
keyboardType: "number-pad",
|
|
36
36
|
style: [styles.input, textStyle, error ? {
|
|
37
|
-
borderColor:
|
|
37
|
+
borderColor: 'red'
|
|
38
38
|
} : {}]
|
|
39
|
-
}), /*#__PURE__*/
|
|
39
|
+
}), error && /*#__PURE__*/_jsxs(View, {
|
|
40
40
|
style: styles.errorContainer,
|
|
41
|
-
children:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
})]
|
|
49
|
-
}) : /*#__PURE__*/_jsx(Text, {
|
|
50
|
-
style: [styles.error, {
|
|
51
|
-
opacity: 0
|
|
52
|
-
}],
|
|
53
|
-
children: "placeholder"
|
|
54
|
-
})
|
|
41
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
42
|
+
source: Icons.alert,
|
|
43
|
+
style: styles.errorIcon
|
|
44
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
45
|
+
style: styles.error,
|
|
46
|
+
children: error
|
|
47
|
+
})]
|
|
55
48
|
})]
|
|
56
49
|
});
|
|
57
50
|
};
|
|
@@ -61,13 +54,13 @@ const styles = StyleSheet.create({
|
|
|
61
54
|
},
|
|
62
55
|
input: {
|
|
63
56
|
borderWidth: 1,
|
|
64
|
-
borderColor:
|
|
57
|
+
borderColor: '#ccc',
|
|
65
58
|
borderRadius: 6,
|
|
66
59
|
padding: 10
|
|
67
60
|
},
|
|
68
61
|
errorContainer: {
|
|
69
|
-
flexDirection:
|
|
70
|
-
alignItems:
|
|
62
|
+
flexDirection: 'row',
|
|
63
|
+
alignItems: 'center',
|
|
71
64
|
marginTop: 4,
|
|
72
65
|
minHeight: 12
|
|
73
66
|
},
|
|
@@ -77,7 +70,7 @@ const styles = StyleSheet.create({
|
|
|
77
70
|
marginRight: 4
|
|
78
71
|
},
|
|
79
72
|
error: {
|
|
80
|
-
color:
|
|
73
|
+
color: 'red',
|
|
81
74
|
fontSize: 12
|
|
82
75
|
}
|
|
83
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","View","TextInput","Text","StyleSheet","Image","Icons","jsx","_jsx","
|
|
1
|
+
{"version":3,"names":["React","useState","View","TextInput","Text","StyleSheet","Image","Icons","jsx","_jsx","jsxs","_jsxs","BivoCVCInput","collector","fieldName","placeholder","onStateChange","required","regex","errorMsg","containerStyle","textStyle","value","setValue","handleChange","text","setField","handleBlur","error","errors","style","styles","container","children","onChangeText","onBlur","secureTextEntry","keyboardType","input","borderColor","errorContainer","source","alert","errorIcon","create","marginVertical","borderWidth","borderRadius","padding","flexDirection","alignItems","marginTop","minHeight","width","height","marginRight","color","fontSize"],"sourceRoot":"../../../src","sources":["components/BivoCVCInput.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,IAAI,EAAEC,SAAS,EAAEC,IAAI,EAAEC,UAAU,EAAEC,KAAK,QAAQ,cAAc;AAGvE,SAASC,KAAK,QAAQ,oBAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAclC,OAAO,MAAMC,YAA6B,GAAGA,CAAC;EAC5CC,SAAS;EACTC,SAAS;EACTC,WAAW;EACXC,aAAa;EACbC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACRC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGtB,QAAQ,CAAC,EAAE,CAAC;EAEtC,MAAMuB,YAAY,GAAIC,IAAY,IAAK;IACrCF,QAAQ,CAACE,IAAI,CAAC;IACdZ,SAAS,CAACa,QAAQ,CAChBZ,SAAS,EACTW,IAAI,EACJT,aAAa,EACbC,QAAQ,EACRC,KAAK,EACLC,QACF,CAAC;EACH,CAAC;EAED,MAAMQ,UAAU,GAAGA,CAAA,KAAM;IACvBd,SAAS,CAACa,QAAQ,CAChBZ,SAAS,EACTQ,KAAK,EACLN,aAAa,EACbC,QAAQ,EACRC,KAAK,EACLC,QACF,CAAC;EACH,CAAC;EAED,MAAMS,KAAK,GAAGf,SAAS,CAACgB,MAAM,CAACf,SAAS,CAAC;EAEzC,oBACEH,KAAA,CAACT,IAAI;IAAC4B,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAEZ,cAAc,CAAE;IAAAa,QAAA,gBAC9CxB,IAAA,CAACN,SAAS;MACRmB,KAAK,EAAEA,KAAM;MACbY,YAAY,EAAEV,YAAa;MAC3BW,MAAM,EAAER,UAAW;MACnBZ,WAAW,EAAEA,WAAY;MACzBqB,eAAe;MACfC,YAAY,EAAC,YAAY;MACzBP,KAAK,EAAE,CAACC,MAAM,CAACO,KAAK,EAAEjB,SAAS,EAAEO,KAAK,GAAG;QAAEW,WAAW,EAAE;MAAM,CAAC,GAAG,CAAC,CAAC;IAAE,CACvE,CAAC,EACDX,KAAK,iBACJjB,KAAA,CAACT,IAAI;MAAC4B,KAAK,EAAEC,MAAM,CAACS,cAAe;MAAAP,QAAA,gBACjCxB,IAAA,CAACH,KAAK;QAACmC,MAAM,EAAElC,KAAK,CAACmC,KAAM;QAACZ,KAAK,EAAEC,MAAM,CAACY;MAAU,CAAE,CAAC,eACvDlC,IAAA,CAACL,IAAI;QAAC0B,KAAK,EAAEC,MAAM,CAACH,KAAM;QAAAK,QAAA,EAAEL;MAAK,CAAO,CAAC;IAAA,CACrC,CACP;EAAA,CACG,CAAC;AAEX,CAAC;AAED,MAAMG,MAAM,GAAG1B,UAAU,CAACuC,MAAM,CAAC;EAC/BZ,SAAS,EAAE;IAAEa,cAAc,EAAE;EAAE,CAAC;EAChCP,KAAK,EAAE;IAAEQ,WAAW,EAAE,CAAC;IAAEP,WAAW,EAAE,MAAM;IAAEQ,YAAY,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAG,CAAC;EAC5ER,cAAc,EAAE;IACdS,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE,CAAC;IACZC,SAAS,EAAE;EACb,CAAC;EACDT,SAAS,EAAE;IAAEU,KAAK,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,WAAW,EAAE;EAAE,CAAC;EACpD3B,KAAK,EAAE;IAAE4B,KAAK,EAAE,KAAK;IAAEC,QAAQ,EAAE;EAAG;AACtC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useState } from
|
|
4
|
-
import { View, TextInput, Image, Text, StyleSheet } from
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View, TextInput, Image, Text, StyleSheet } from 'react-native';
|
|
5
5
|
import { Icons } from "../assets/index.js";
|
|
6
6
|
import { formatCardNumber } from "../utils/utils.js";
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
const cardIcons = {
|
|
9
9
|
visa: Icons.visa,
|
|
10
10
|
mastercard: Icons.mastercard,
|
|
@@ -23,14 +23,14 @@ export const BivoCardInput = ({
|
|
|
23
23
|
containerStyle,
|
|
24
24
|
textStyle
|
|
25
25
|
}) => {
|
|
26
|
-
const [value, setValue] = useState(
|
|
27
|
-
const [cardType, setCardType] = useState(
|
|
26
|
+
const [value, setValue] = useState('');
|
|
27
|
+
const [cardType, setCardType] = useState('unknown'); //cardType
|
|
28
28
|
|
|
29
29
|
const handleChange = text => {
|
|
30
30
|
const formatted = formatCardNumber(text);
|
|
31
31
|
setValue(formatted);
|
|
32
|
-
const cleaned = text.replace(/\D/g,
|
|
33
|
-
if (/^4/.test(cleaned)) setCardType(
|
|
32
|
+
const cleaned = text.replace(/\D/g, '');
|
|
33
|
+
if (/^4/.test(cleaned)) setCardType('visa');else if (/^5[1-5]/.test(cleaned)) setCardType('mastercard');else if (/^3[47]/.test(cleaned)) setCardType('amex');else if (/^6(?:011|5)/.test(cleaned)) setCardType('discover');else setCardType('unknown');
|
|
34
34
|
collector.setField(fieldName, text, onStateChange, required, regex, errorMsg);
|
|
35
35
|
};
|
|
36
36
|
const handleBlur = () => {
|
|
@@ -51,25 +51,18 @@ export const BivoCardInput = ({
|
|
|
51
51
|
placeholder: placeholder,
|
|
52
52
|
keyboardType: "number-pad",
|
|
53
53
|
style: [styles.input, textStyle, error ? {
|
|
54
|
-
borderColor:
|
|
54
|
+
borderColor: 'red'
|
|
55
55
|
} : {}]
|
|
56
56
|
})]
|
|
57
|
-
}), /*#__PURE__*/
|
|
57
|
+
}), error && /*#__PURE__*/_jsxs(View, {
|
|
58
58
|
style: styles.errorContainer,
|
|
59
|
-
children:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
})]
|
|
67
|
-
}) : /*#__PURE__*/_jsx(Text, {
|
|
68
|
-
style: [styles.error, {
|
|
69
|
-
opacity: 0
|
|
70
|
-
}],
|
|
71
|
-
children: "placeholder"
|
|
72
|
-
})
|
|
59
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
60
|
+
source: Icons.alert,
|
|
61
|
+
style: styles.errorIcon
|
|
62
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
63
|
+
style: styles.error,
|
|
64
|
+
children: error
|
|
65
|
+
})]
|
|
73
66
|
})]
|
|
74
67
|
});
|
|
75
68
|
};
|
|
@@ -78,25 +71,25 @@ const styles = StyleSheet.create({
|
|
|
78
71
|
marginVertical: 8
|
|
79
72
|
},
|
|
80
73
|
row: {
|
|
81
|
-
flexDirection:
|
|
82
|
-
alignItems:
|
|
74
|
+
flexDirection: 'row',
|
|
75
|
+
alignItems: 'center'
|
|
83
76
|
},
|
|
84
77
|
input: {
|
|
85
78
|
flex: 1,
|
|
86
79
|
borderWidth: 1,
|
|
87
|
-
borderColor:
|
|
80
|
+
borderColor: '#ccc',
|
|
88
81
|
borderRadius: 6,
|
|
89
82
|
padding: 10
|
|
90
83
|
},
|
|
91
84
|
icon: {
|
|
92
85
|
width: 40,
|
|
93
86
|
height: 25,
|
|
94
|
-
resizeMode:
|
|
87
|
+
resizeMode: 'contain',
|
|
95
88
|
marginRight: 8
|
|
96
89
|
},
|
|
97
90
|
errorContainer: {
|
|
98
|
-
flexDirection:
|
|
99
|
-
alignItems:
|
|
91
|
+
flexDirection: 'row',
|
|
92
|
+
alignItems: 'center',
|
|
100
93
|
marginLeft: 40,
|
|
101
94
|
marginTop: 4,
|
|
102
95
|
minHeight: 12
|
|
@@ -107,7 +100,7 @@ const styles = StyleSheet.create({
|
|
|
107
100
|
marginRight: 4
|
|
108
101
|
},
|
|
109
102
|
error: {
|
|
110
|
-
color:
|
|
103
|
+
color: 'red',
|
|
111
104
|
fontSize: 12
|
|
112
105
|
}
|
|
113
106
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","View","TextInput","Image","Text","StyleSheet","Icons","formatCardNumber","jsx","_jsx","jsxs","_jsxs","
|
|
1
|
+
{"version":3,"names":["React","useState","View","TextInput","Image","Text","StyleSheet","Icons","formatCardNumber","jsx","_jsx","jsxs","_jsxs","cardIcons","visa","mastercard","amex","discover","unknown","card","BivoCardInput","collector","fieldName","placeholder","onStateChange","required","regex","errorMsg","containerStyle","textStyle","value","setValue","cardType","setCardType","handleChange","text","formatted","cleaned","replace","test","setField","handleBlur","error","errors","style","styles","container","children","row","source","icon","onChangeText","onBlur","keyboardType","input","borderColor","errorContainer","alert","errorIcon","create","marginVertical","flexDirection","alignItems","flex","borderWidth","borderRadius","padding","width","height","resizeMode","marginRight","marginLeft","marginTop","minHeight","color","fontSize"],"sourceRoot":"../../../src","sources":["components/BivoCardInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useState } from
|
|
4
|
-
import { View, TextInput, Text, StyleSheet, Image } from
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View, TextInput, Text, StyleSheet, Image } from 'react-native';
|
|
5
5
|
import { Icons } from "../assets/index.js";
|
|
6
6
|
import { formatExpiry } from "../utils/utils.js";
|
|
7
|
-
import { jsx as _jsx,
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
export const BivoTextInput = ({
|
|
9
9
|
collector,
|
|
10
10
|
fieldName,
|
|
@@ -16,10 +16,10 @@ export const BivoTextInput = ({
|
|
|
16
16
|
containerStyle,
|
|
17
17
|
textStyle
|
|
18
18
|
}) => {
|
|
19
|
-
const [value, setValue] = useState(
|
|
19
|
+
const [value, setValue] = useState('');
|
|
20
20
|
const handleChange = text => {
|
|
21
21
|
let updatedValue;
|
|
22
|
-
if (fieldName ===
|
|
22
|
+
if (fieldName === 'exp') {
|
|
23
23
|
updatedValue = formatExpiry(text);
|
|
24
24
|
} else {
|
|
25
25
|
updatedValue = text;
|
|
@@ -39,24 +39,17 @@ export const BivoTextInput = ({
|
|
|
39
39
|
onBlur: handleBlur,
|
|
40
40
|
placeholder: placeholder,
|
|
41
41
|
style: [styles.input, textStyle, error ? {
|
|
42
|
-
borderColor:
|
|
42
|
+
borderColor: 'red'
|
|
43
43
|
} : {}]
|
|
44
|
-
}), /*#__PURE__*/
|
|
44
|
+
}), error && /*#__PURE__*/_jsxs(View, {
|
|
45
45
|
style: styles.errorContainer,
|
|
46
|
-
children:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
})]
|
|
54
|
-
}) : /*#__PURE__*/_jsx(Text, {
|
|
55
|
-
style: [styles.error, {
|
|
56
|
-
opacity: 0
|
|
57
|
-
}],
|
|
58
|
-
children: "placeholder"
|
|
59
|
-
})
|
|
46
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
47
|
+
source: Icons.alert,
|
|
48
|
+
style: styles.errorIcon
|
|
49
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
50
|
+
style: styles.error,
|
|
51
|
+
children: error
|
|
52
|
+
})]
|
|
60
53
|
})]
|
|
61
54
|
});
|
|
62
55
|
};
|
|
@@ -66,13 +59,13 @@ const styles = StyleSheet.create({
|
|
|
66
59
|
},
|
|
67
60
|
input: {
|
|
68
61
|
borderWidth: 1,
|
|
69
|
-
borderColor:
|
|
62
|
+
borderColor: '#ccc',
|
|
70
63
|
borderRadius: 6,
|
|
71
64
|
padding: 10
|
|
72
65
|
},
|
|
73
66
|
errorContainer: {
|
|
74
|
-
flexDirection:
|
|
75
|
-
alignItems:
|
|
67
|
+
flexDirection: 'row',
|
|
68
|
+
alignItems: 'center',
|
|
76
69
|
marginTop: 4,
|
|
77
70
|
minHeight: 12
|
|
78
71
|
},
|
|
@@ -82,7 +75,7 @@ const styles = StyleSheet.create({
|
|
|
82
75
|
marginRight: 4
|
|
83
76
|
},
|
|
84
77
|
error: {
|
|
85
|
-
color:
|
|
78
|
+
color: 'red',
|
|
86
79
|
fontSize: 12
|
|
87
80
|
}
|
|
88
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","View","TextInput","Text","StyleSheet","Image","Icons","formatExpiry","jsx","_jsx","
|
|
1
|
+
{"version":3,"names":["React","useState","View","TextInput","Text","StyleSheet","Image","Icons","formatExpiry","jsx","_jsx","jsxs","_jsxs","BivoTextInput","collector","fieldName","placeholder","onStateChange","required","regex","errorMsg","containerStyle","textStyle","value","setValue","handleChange","text","updatedValue","setField","handleBlur","error","errors","style","styles","container","children","onChangeText","onBlur","input","borderColor","errorContainer","source","alert","errorIcon","create","marginVertical","borderWidth","borderRadius","padding","flexDirection","alignItems","marginTop","minHeight","width","height","marginRight","color","fontSize"],"sourceRoot":"../../../src","sources":["components/BivoTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -92,7 +92,7 @@ export class BivoCollect {
|
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
async submit(endpoint, token) {
|
|
95
|
-
console.log("Submitting form:", this.form, this.errors);
|
|
95
|
+
// console.log("Submitting form:", this.form, this.errors);
|
|
96
96
|
const expiry = this.form.expiryDate?.split("/") || [];
|
|
97
97
|
|
|
98
98
|
// Replace fetchData with your API call
|
|
@@ -109,6 +109,7 @@ export class BivoCollect {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
});
|
|
112
|
+
console.log("🚀 ~ BivoCollect ~ submit ~ response:", response, endpoint, token);
|
|
112
113
|
if (response.error) {
|
|
113
114
|
return {
|
|
114
115
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fetchData","formatCardYear","formatString","BivoCollect","form","errors","fieldConfig","constructor","vaultId","environment","setField","fieldName","value","onStateChange","required","regex","errorMsg","error","validateField","trimmedValue","trim","test","digits","replace","length","monthStr","yearStr","split","month","parseInt","year","fullYear","now","Date","currentMonth","getMonth","currentYear","getFullYear","isSubmitDisabled","fieldNames","some","submit","endpoint","token","
|
|
1
|
+
{"version":3,"names":["fetchData","formatCardYear","formatString","BivoCollect","form","errors","fieldConfig","constructor","vaultId","environment","setField","fieldName","value","onStateChange","required","regex","errorMsg","error","validateField","trimmedValue","trim","test","digits","replace","length","monthStr","yearStr","split","month","parseInt","year","fullYear","now","Date","currentMonth","getMonth","currentYear","getFullYear","isSubmitDisabled","fieldNames","some","submit","endpoint","token","expiry","expiryDate","response","method","body","pan","cardNumber","expiry_month","Number","expiry_year","cvv","cvc","address","postal_code","zipCode","console","log","success","data"],"sourceRoot":"../../../src","sources":["core/Collector.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import type { ViewStyle, TextStyle } from
|
|
3
|
-
import { BivoCollect } from
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle, TextStyle } from 'react-native';
|
|
3
|
+
import { BivoCollect } from '../core/Collector';
|
|
4
4
|
interface Props {
|
|
5
5
|
collector: BivoCollect;
|
|
6
6
|
fieldName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BivoCVCInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BivoCVCInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,UAAU,KAAK;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"BivoCVCInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BivoCVCInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,UAAU,KAAK;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyDxC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import type { ViewStyle, TextStyle } from
|
|
3
|
-
import { BivoCollect } from
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle, TextStyle } from 'react-native';
|
|
3
|
+
import { BivoCollect } from '../core/Collector';
|
|
4
4
|
interface Props {
|
|
5
5
|
collector: BivoCollect;
|
|
6
6
|
fieldName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BivoCardInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BivoCardInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,UAAU,KAAK;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAUD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"BivoCardInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BivoCardInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,UAAU,KAAK;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAUD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoEzC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import type { ViewStyle, TextStyle } from
|
|
3
|
-
import type { BivoCollect } from
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle, TextStyle } from 'react-native';
|
|
3
|
+
import type { BivoCollect } from '../core/Collector';
|
|
4
4
|
interface Props {
|
|
5
5
|
collector: BivoCollect;
|
|
6
6
|
fieldName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BivoTextInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BivoTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"BivoTextInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BivoTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,UAAU,KAAK;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6DzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collector.d.ts","sourceRoot":"","sources":["../../../../src/core/Collector.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,qBAAa,WAAW;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;gBAEhF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,MAAM;IAK5D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EAAE,QAAQ,GAAE,OAAe,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAUpJ,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAoErG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE;IAQ/B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Collector.d.ts","sourceRoot":"","sources":["../../../../src/core/Collector.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,qBAAa,WAAW;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;gBAEhF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,MAAM;IAK5D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EAAE,QAAQ,GAAE,OAAe,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAUpJ,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAoErG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE;IAQ/B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;CA0B7C"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import { View, TextInput, Text, StyleSheet, Image } from
|
|
3
|
-
import type { ViewStyle, TextStyle } from
|
|
4
|
-
import { BivoCollect } from
|
|
5
|
-
import { Icons } from
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { View, TextInput, Text, StyleSheet, Image } from 'react-native';
|
|
3
|
+
import type { ViewStyle, TextStyle } from 'react-native';
|
|
4
|
+
import { BivoCollect } from '../core/Collector';
|
|
5
|
+
import { Icons } from '../assets';
|
|
6
6
|
|
|
7
7
|
interface Props {
|
|
8
8
|
collector: BivoCollect;
|
|
@@ -27,15 +27,29 @@ export const BivoCVCInput: React.FC<Props> = ({
|
|
|
27
27
|
containerStyle,
|
|
28
28
|
textStyle,
|
|
29
29
|
}) => {
|
|
30
|
-
const [value, setValue] = useState(
|
|
30
|
+
const [value, setValue] = useState('');
|
|
31
31
|
|
|
32
32
|
const handleChange = (text: string) => {
|
|
33
33
|
setValue(text);
|
|
34
|
-
collector.setField(
|
|
34
|
+
collector.setField(
|
|
35
|
+
fieldName,
|
|
36
|
+
text,
|
|
37
|
+
onStateChange,
|
|
38
|
+
required,
|
|
39
|
+
regex,
|
|
40
|
+
errorMsg
|
|
41
|
+
);
|
|
35
42
|
};
|
|
36
43
|
|
|
37
44
|
const handleBlur = () => {
|
|
38
|
-
collector.setField(
|
|
45
|
+
collector.setField(
|
|
46
|
+
fieldName,
|
|
47
|
+
value,
|
|
48
|
+
onStateChange,
|
|
49
|
+
required,
|
|
50
|
+
regex,
|
|
51
|
+
errorMsg
|
|
52
|
+
);
|
|
39
53
|
};
|
|
40
54
|
|
|
41
55
|
const error = collector.errors[fieldName];
|
|
@@ -49,26 +63,27 @@ export const BivoCVCInput: React.FC<Props> = ({
|
|
|
49
63
|
placeholder={placeholder}
|
|
50
64
|
secureTextEntry
|
|
51
65
|
keyboardType="number-pad"
|
|
52
|
-
style={[styles.input, textStyle, error ? { borderColor:
|
|
66
|
+
style={[styles.input, textStyle, error ? { borderColor: 'red' } : {}]}
|
|
53
67
|
/>
|
|
54
|
-
|
|
55
|
-
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
) : (
|
|
61
|
-
<Text style={[styles.error, { opacity: 0 }]}>placeholder</Text>
|
|
62
|
-
)}
|
|
63
|
-
</View>
|
|
68
|
+
{error && (
|
|
69
|
+
<View style={styles.errorContainer}>
|
|
70
|
+
<Image source={Icons.alert} style={styles.errorIcon} />
|
|
71
|
+
<Text style={styles.error}>{error}</Text>
|
|
72
|
+
</View>
|
|
73
|
+
)}
|
|
64
74
|
</View>
|
|
65
75
|
);
|
|
66
76
|
};
|
|
67
77
|
|
|
68
78
|
const styles = StyleSheet.create({
|
|
69
79
|
container: { marginVertical: 8 },
|
|
70
|
-
input: { borderWidth: 1, borderColor:
|
|
71
|
-
errorContainer: {
|
|
80
|
+
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 6, padding: 10 },
|
|
81
|
+
errorContainer: {
|
|
82
|
+
flexDirection: 'row',
|
|
83
|
+
alignItems: 'center',
|
|
84
|
+
marginTop: 4,
|
|
85
|
+
minHeight: 12,
|
|
86
|
+
},
|
|
72
87
|
errorIcon: { width: 12, height: 12, marginRight: 4 },
|
|
73
|
-
error: { color:
|
|
74
|
-
});
|
|
88
|
+
error: { color: 'red', fontSize: 12 },
|
|
89
|
+
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import { View, TextInput, Image, Text, StyleSheet} from
|
|
3
|
-
import type { ViewStyle, TextStyle } from
|
|
4
|
-
import { BivoCollect } from
|
|
5
|
-
import { Icons } from
|
|
6
|
-
import { formatCardNumber } from
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { View, TextInput, Image, Text, StyleSheet } from 'react-native';
|
|
3
|
+
import type { ViewStyle, TextStyle } from 'react-native';
|
|
4
|
+
import { BivoCollect } from '../core/Collector';
|
|
5
|
+
import { Icons } from '../assets';
|
|
6
|
+
import { formatCardNumber } from '../utils/utils';
|
|
7
7
|
|
|
8
8
|
interface Props {
|
|
9
9
|
collector: BivoCollect;
|
|
@@ -17,8 +17,8 @@ interface Props {
|
|
|
17
17
|
textStyle?: TextStyle;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
const cardIcons:any = {
|
|
21
|
-
visa:Icons.visa,
|
|
20
|
+
const cardIcons: any = {
|
|
21
|
+
visa: Icons.visa,
|
|
22
22
|
mastercard: Icons.mastercard,
|
|
23
23
|
amex: Icons.amex,
|
|
24
24
|
discover: Icons.discover,
|
|
@@ -36,24 +36,38 @@ export const BivoCardInput: React.FC<Props> = ({
|
|
|
36
36
|
containerStyle,
|
|
37
37
|
textStyle,
|
|
38
38
|
}) => {
|
|
39
|
-
const [value, setValue] = useState(
|
|
40
|
-
const [cardType, setCardType] = useState(
|
|
39
|
+
const [value, setValue] = useState('');
|
|
40
|
+
const [cardType, setCardType] = useState('unknown'); //cardType
|
|
41
41
|
|
|
42
42
|
const handleChange = (text: string) => {
|
|
43
43
|
const formatted = formatCardNumber(text);
|
|
44
44
|
setValue(formatted);
|
|
45
|
-
const cleaned = text.replace(/\D/g,
|
|
46
|
-
if (/^4/.test(cleaned)) setCardType(
|
|
47
|
-
else if (/^5[1-5]/.test(cleaned)) setCardType(
|
|
48
|
-
else if (/^3[47]/.test(cleaned)) setCardType(
|
|
49
|
-
else if (/^6(?:011|5)/.test(cleaned)) setCardType(
|
|
50
|
-
else setCardType(
|
|
45
|
+
const cleaned = text.replace(/\D/g, '');
|
|
46
|
+
if (/^4/.test(cleaned)) setCardType('visa');
|
|
47
|
+
else if (/^5[1-5]/.test(cleaned)) setCardType('mastercard');
|
|
48
|
+
else if (/^3[47]/.test(cleaned)) setCardType('amex');
|
|
49
|
+
else if (/^6(?:011|5)/.test(cleaned)) setCardType('discover');
|
|
50
|
+
else setCardType('unknown');
|
|
51
51
|
|
|
52
|
-
collector.setField(
|
|
52
|
+
collector.setField(
|
|
53
|
+
fieldName,
|
|
54
|
+
text,
|
|
55
|
+
onStateChange,
|
|
56
|
+
required,
|
|
57
|
+
regex,
|
|
58
|
+
errorMsg
|
|
59
|
+
);
|
|
53
60
|
};
|
|
54
61
|
|
|
55
62
|
const handleBlur = () => {
|
|
56
|
-
collector.setField(
|
|
63
|
+
collector.setField(
|
|
64
|
+
fieldName,
|
|
65
|
+
value,
|
|
66
|
+
onStateChange,
|
|
67
|
+
required,
|
|
68
|
+
regex,
|
|
69
|
+
errorMsg
|
|
70
|
+
);
|
|
57
71
|
};
|
|
58
72
|
|
|
59
73
|
const error = collector.errors[fieldName];
|
|
@@ -68,29 +82,37 @@ export const BivoCardInput: React.FC<Props> = ({
|
|
|
68
82
|
onBlur={handleBlur}
|
|
69
83
|
placeholder={placeholder}
|
|
70
84
|
keyboardType="number-pad"
|
|
71
|
-
style={[styles.input, textStyle, error ? { borderColor:
|
|
85
|
+
style={[styles.input, textStyle, error ? { borderColor: 'red' } : {}]}
|
|
72
86
|
/>
|
|
73
87
|
</View>
|
|
74
|
-
|
|
75
|
-
{
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
) : (
|
|
81
|
-
<Text style={[styles.error, { opacity: 0 }]}>placeholder</Text>
|
|
82
|
-
)}
|
|
83
|
-
</View>
|
|
88
|
+
{error && (
|
|
89
|
+
<View style={styles.errorContainer}>
|
|
90
|
+
<Image source={Icons.alert} style={styles.errorIcon} />
|
|
91
|
+
<Text style={styles.error}>{error}</Text>
|
|
92
|
+
</View>
|
|
93
|
+
)}
|
|
84
94
|
</View>
|
|
85
95
|
);
|
|
86
96
|
};
|
|
87
97
|
|
|
88
98
|
const styles = StyleSheet.create({
|
|
89
99
|
container: { marginVertical: 8 },
|
|
90
|
-
row: { flexDirection:
|
|
91
|
-
input: {
|
|
92
|
-
|
|
93
|
-
|
|
100
|
+
row: { flexDirection: 'row', alignItems: 'center' },
|
|
101
|
+
input: {
|
|
102
|
+
flex: 1,
|
|
103
|
+
borderWidth: 1,
|
|
104
|
+
borderColor: '#ccc',
|
|
105
|
+
borderRadius: 6,
|
|
106
|
+
padding: 10,
|
|
107
|
+
},
|
|
108
|
+
icon: { width: 40, height: 25, resizeMode: 'contain', marginRight: 8 },
|
|
109
|
+
errorContainer: {
|
|
110
|
+
flexDirection: 'row',
|
|
111
|
+
alignItems: 'center',
|
|
112
|
+
marginLeft: 40,
|
|
113
|
+
marginTop: 4,
|
|
114
|
+
minHeight: 12,
|
|
115
|
+
},
|
|
94
116
|
errorIcon: { width: 12, height: 12, marginRight: 4 },
|
|
95
|
-
error: { color:
|
|
96
|
-
});
|
|
117
|
+
error: { color: 'red', fontSize: 12 },
|
|
118
|
+
});
|
|
@@ -1,80 +1,94 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import { View, TextInput, Text, StyleSheet, Image } from
|
|
3
|
-
import type { ViewStyle, TextStyle } from
|
|
4
|
-
import type { BivoCollect } from
|
|
5
|
-
import { Icons } from
|
|
6
|
-
import { formatExpiry } from
|
|
7
|
-
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { View, TextInput, Text, StyleSheet, Image } from 'react-native';
|
|
3
|
+
import type { ViewStyle, TextStyle } from 'react-native';
|
|
4
|
+
import type { BivoCollect } from '../core/Collector';
|
|
5
|
+
import { Icons } from '../assets';
|
|
6
|
+
import { formatExpiry } from '../utils/utils';
|
|
8
7
|
|
|
9
8
|
interface Props {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
collector: BivoCollect;
|
|
10
|
+
fieldName: string;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
onStateChange?: (state: any) => void;
|
|
13
|
+
required?: boolean;
|
|
14
|
+
regex?: RegExp;
|
|
15
|
+
errorMsg?: string;
|
|
16
|
+
containerStyle?: ViewStyle;
|
|
17
|
+
textStyle?: TextStyle;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
export const BivoTextInput: React.FC<Props> = ({
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
collector,
|
|
22
|
+
fieldName,
|
|
23
|
+
placeholder,
|
|
24
|
+
onStateChange,
|
|
25
|
+
required,
|
|
26
|
+
regex,
|
|
27
|
+
errorMsg,
|
|
28
|
+
containerStyle,
|
|
29
|
+
textStyle,
|
|
31
30
|
}) => {
|
|
32
|
-
|
|
31
|
+
const [value, setValue] = useState('');
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
const handleChange = (text: string) => {
|
|
34
|
+
let updatedValue;
|
|
35
|
+
if (fieldName === 'exp') {
|
|
36
|
+
updatedValue = formatExpiry(text);
|
|
37
|
+
} else {
|
|
38
|
+
updatedValue = text;
|
|
39
|
+
}
|
|
40
|
+
setValue(updatedValue);
|
|
41
|
+
collector.setField(
|
|
42
|
+
fieldName,
|
|
43
|
+
updatedValue,
|
|
44
|
+
onStateChange,
|
|
45
|
+
required,
|
|
46
|
+
regex,
|
|
47
|
+
errorMsg
|
|
48
|
+
);
|
|
49
|
+
};
|
|
44
50
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
const handleBlur = () => {
|
|
52
|
+
collector.setField(
|
|
53
|
+
fieldName,
|
|
54
|
+
value,
|
|
55
|
+
onStateChange,
|
|
56
|
+
required,
|
|
57
|
+
regex,
|
|
58
|
+
errorMsg
|
|
59
|
+
);
|
|
60
|
+
};
|
|
48
61
|
|
|
49
|
-
|
|
62
|
+
const error = collector.errors[fieldName];
|
|
50
63
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
<Text style={styles.error}>{error}</Text>
|
|
65
|
-
</>
|
|
66
|
-
) : (
|
|
67
|
-
<Text style={[styles.error, { opacity: 0 }]}>placeholder</Text>
|
|
68
|
-
)}
|
|
69
|
-
</View>
|
|
64
|
+
return (
|
|
65
|
+
<View style={[styles.container, containerStyle]}>
|
|
66
|
+
<TextInput
|
|
67
|
+
value={value}
|
|
68
|
+
onChangeText={handleChange}
|
|
69
|
+
onBlur={handleBlur}
|
|
70
|
+
placeholder={placeholder}
|
|
71
|
+
style={[styles.input, textStyle, error ? { borderColor: 'red' } : {}]}
|
|
72
|
+
/>
|
|
73
|
+
{error && (
|
|
74
|
+
<View style={styles.errorContainer}>
|
|
75
|
+
<Image source={Icons.alert} style={styles.errorIcon} />
|
|
76
|
+
<Text style={styles.error}>{error}</Text>
|
|
70
77
|
</View>
|
|
71
|
-
|
|
78
|
+
)}
|
|
79
|
+
</View>
|
|
80
|
+
);
|
|
72
81
|
};
|
|
73
82
|
|
|
74
83
|
const styles = StyleSheet.create({
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
container: { marginVertical: 8 },
|
|
85
|
+
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 6, padding: 10 },
|
|
86
|
+
errorContainer: {
|
|
87
|
+
flexDirection: 'row',
|
|
88
|
+
alignItems: 'center',
|
|
89
|
+
marginTop: 4,
|
|
90
|
+
minHeight: 12,
|
|
91
|
+
},
|
|
92
|
+
errorIcon: { width: 12, height: 12, marginRight: 4 },
|
|
93
|
+
error: { color: 'red', fontSize: 12 },
|
|
94
|
+
});
|
package/src/core/Collector.ts
CHANGED
|
@@ -103,7 +103,7 @@ export class BivoCollect {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
async submit(endpoint: string, token: string) {
|
|
106
|
-
console.log("Submitting form:", this.form, this.errors);
|
|
106
|
+
// console.log("Submitting form:", this.form, this.errors);
|
|
107
107
|
const expiry = this.form.expiryDate?.split("/") || [];
|
|
108
108
|
|
|
109
109
|
// Replace fetchData with your API call
|
|
@@ -120,6 +120,7 @@ export class BivoCollect {
|
|
|
120
120
|
},
|
|
121
121
|
},
|
|
122
122
|
});
|
|
123
|
+
console.log("🚀 ~ BivoCollect ~ submit ~ response:", response,endpoint,token)
|
|
123
124
|
if (response.error) {
|
|
124
125
|
return{ success: false, error: response.error };
|
|
125
126
|
} else {
|