omnipay-reactnative-sdk 0.2.6 → 0.2.8
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/commonjs/components/OmnipayProvider.js +20 -56
- package/lib/commonjs/components/OmnipayProvider.js.map +1 -1
- package/lib/commonjs/components/OmnipayView.js +12 -174
- package/lib/commonjs/components/OmnipayView.js.map +1 -1
- package/lib/commonjs/functions.js +65 -0
- package/lib/commonjs/functions.js.map +1 -0
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/OmnipayProvider.js +20 -56
- package/lib/module/components/OmnipayProvider.js.map +1 -1
- package/lib/module/components/OmnipayView.js +11 -173
- package/lib/module/components/OmnipayView.js.map +1 -1
- package/lib/module/functions.js +57 -0
- package/lib/module/functions.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/OmnipayProvider.d.ts +1 -1
- package/lib/typescript/components/OmnipayProvider.d.ts.map +1 -1
- package/lib/typescript/components/OmnipayView.d.ts +2 -8
- package/lib/typescript/components/OmnipayView.d.ts.map +1 -1
- package/lib/typescript/functions.d.ts +7 -0
- package/lib/typescript/functions.d.ts.map +1 -0
- package/lib/typescript/hooks/useOmnipay.d.ts +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/OmnipayProvider.tsx +32 -60
- package/src/components/OmnipayView.tsx +9 -185
- package/src/functions.ts +49 -0
- package/src/index.tsx +1 -0
|
@@ -7,7 +7,7 @@ exports.OmnipayProvider = exports.OmnipayContext = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeWebview = _interopRequireDefault(require("react-native-webview"));
|
|
10
|
-
var
|
|
10
|
+
var _functions = require("../functions");
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -20,15 +20,16 @@ const OmnipayProvider = _ref => {
|
|
|
20
20
|
env,
|
|
21
21
|
color
|
|
22
22
|
} = _ref;
|
|
23
|
-
const [webviewUrl, setWebviewUrl] = (0, _react.useState)("");
|
|
24
23
|
const [webviewStatus, setWebviewStatus] = (0, _react.useState)('loading');
|
|
25
24
|
const [useFullscreen, setUseFullScreen] = (0, _react.useState)(false);
|
|
26
25
|
const webviewRef = (0, _react.useRef)(null);
|
|
27
26
|
const webHost = getWebHost();
|
|
28
27
|
const webviewStyle = getWebviewStyle();
|
|
28
|
+
const [webviewUrl, setWebviewUrl] = (0, _react.useState)(webHost);
|
|
29
|
+
const isNoviewLoaded = !webviewUrl.includes("view");
|
|
29
30
|
console.log(useFullscreen);
|
|
30
31
|
function getWebviewStyle() {
|
|
31
|
-
if (
|
|
32
|
+
if (isNoviewLoaded) {
|
|
32
33
|
return {
|
|
33
34
|
opacity: 0,
|
|
34
35
|
height: 0,
|
|
@@ -65,7 +66,7 @@ const OmnipayProvider = _ref => {
|
|
|
65
66
|
dataValue
|
|
66
67
|
} = eventData;
|
|
67
68
|
if (dataKey === 'chooseContact') {
|
|
68
|
-
const contactDetails = await getContact();
|
|
69
|
+
const contactDetails = await (0, _functions.getContact)();
|
|
69
70
|
postMessage({
|
|
70
71
|
dataKey: 'contactSelected',
|
|
71
72
|
dataValue: contactDetails
|
|
@@ -83,55 +84,8 @@ const OmnipayProvider = _ref => {
|
|
|
83
84
|
}
|
|
84
85
|
} catch (error) {}
|
|
85
86
|
}
|
|
86
|
-
async function getContact() {
|
|
87
|
-
try {
|
|
88
|
-
const isPermissionGranted = await checkPermisionStatus();
|
|
89
|
-
if (!isPermissionGranted) {
|
|
90
|
-
return {
|
|
91
|
-
name: '',
|
|
92
|
-
phoneNumber: ''
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
const result = await (0, _reactNativeSelectContact.selectContactPhone)();
|
|
96
|
-
if (!result) {
|
|
97
|
-
return {
|
|
98
|
-
name: '',
|
|
99
|
-
phoneNumber: ''
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
let {
|
|
103
|
-
contact,
|
|
104
|
-
selectedPhone
|
|
105
|
-
} = result;
|
|
106
|
-
return {
|
|
107
|
-
name: contact.name,
|
|
108
|
-
phoneNumber: selectedPhone.number
|
|
109
|
-
};
|
|
110
|
-
} catch (error) {
|
|
111
|
-
return {
|
|
112
|
-
name: '',
|
|
113
|
-
phoneNumber: ''
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async function checkPermisionStatus() {
|
|
118
|
-
if (_reactNative.Platform.OS === 'ios') {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
if (_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS) {
|
|
122
|
-
const granted = await _reactNative.PermissionsAndroid.request(_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS, {
|
|
123
|
-
title: 'Allow us access your contact list',
|
|
124
|
-
message: 'This will enable you choose a phone number to buy airtime or data for from your contact list',
|
|
125
|
-
buttonNegative: 'Cancel',
|
|
126
|
-
buttonPositive: 'OK'
|
|
127
|
-
});
|
|
128
|
-
if (granted === _reactNative.PermissionsAndroid.RESULTS.GRANTED) {
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
87
|
const _initiateBills = (0, _react.useCallback)(phoneNumber => {
|
|
88
|
+
console.log(phoneNumber);
|
|
135
89
|
if (phoneNumber) {
|
|
136
90
|
if (phoneNumber.length === 11) {
|
|
137
91
|
const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
@@ -143,7 +97,13 @@ const OmnipayProvider = _ref => {
|
|
|
143
97
|
value: {
|
|
144
98
|
initiateBills: _initiateBills
|
|
145
99
|
}
|
|
146
|
-
},
|
|
100
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
101
|
+
style: {
|
|
102
|
+
flex: 1,
|
|
103
|
+
backgroundColor: "red",
|
|
104
|
+
height: "100%"
|
|
105
|
+
}
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.default, {
|
|
147
107
|
source: {
|
|
148
108
|
uri: webviewUrl
|
|
149
109
|
},
|
|
@@ -153,12 +113,12 @@ const OmnipayProvider = _ref => {
|
|
|
153
113
|
ref: webviewRef,
|
|
154
114
|
onLoadStart: () => setWebviewStatus("loading"),
|
|
155
115
|
onLoadEnd: () => setWebviewStatus('success')
|
|
156
|
-
}), webviewStatus === 'loading' &&
|
|
116
|
+
}), webviewStatus === 'loading' && !isNoviewLoaded && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
157
117
|
style: styles.webviewLoader
|
|
158
118
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
159
119
|
size: "small",
|
|
160
120
|
color: color
|
|
161
|
-
})));
|
|
121
|
+
})), children));
|
|
162
122
|
};
|
|
163
123
|
exports.OmnipayProvider = OmnipayProvider;
|
|
164
124
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -173,8 +133,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
173
133
|
webview: {
|
|
174
134
|
flex: 1,
|
|
175
135
|
width: '100%',
|
|
176
|
-
height:
|
|
136
|
+
height: 900
|
|
137
|
+
// position: "absolute",
|
|
138
|
+
// top: 0,
|
|
139
|
+
// left: 0
|
|
177
140
|
},
|
|
141
|
+
|
|
178
142
|
webviewLoader: {
|
|
179
143
|
zIndex: 3,
|
|
180
144
|
backgroundColor: 'white',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OmnipayContext","React","createContext","OmnipayProvider","children","publicKey","env","color","
|
|
1
|
+
{"version":3,"names":["OmnipayContext","React","createContext","OmnipayProvider","children","publicKey","env","color","webviewStatus","setWebviewStatus","useState","useFullscreen","setUseFullScreen","webviewRef","useRef","webHost","getWebHost","webviewStyle","getWebviewStyle","webviewUrl","setWebviewUrl","isNoviewLoaded","includes","console","log","opacity","height","width","flex","styles","webview","onWebviewMount","Platform","OS","postMessage","data","current","JSON","stringify","error","onWebviewMessage","e","nativeEvent","eventData","parse","dataKey","dataValue","contactDetails","getContact","Linking","openURL","_initiateBills","useCallback","phoneNumber","length","webUrl","initiateBills","backgroundColor","uri","webviewLoader","StyleSheet","create","hide","display","full","zIndex","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
|
|
@@ -3,184 +3,22 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.Omnipay = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var
|
|
9
|
-
var _reactNativeWebview = require("react-native-webview");
|
|
10
|
-
var _reactNativeSelectContact = require("react-native-select-contact");
|
|
8
|
+
var _useOmnipay = require("../hooks/useOmnipay");
|
|
11
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
10
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
const
|
|
11
|
+
const Omnipay = _ref => {
|
|
14
12
|
let {
|
|
15
|
-
|
|
16
|
-
env,
|
|
17
|
-
publicKey,
|
|
18
|
-
phoneNumber,
|
|
19
|
-
view,
|
|
20
|
-
onEnterFullScreen,
|
|
21
|
-
onExitFullScreen
|
|
13
|
+
phoneNumber
|
|
22
14
|
} = _ref;
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
return 'https://sdk.omnipay.ng/';
|
|
32
|
-
}
|
|
33
|
-
const onWebviewMount = `
|
|
34
|
-
window.nativeOs = ${_reactNative.Platform.OS};
|
|
35
|
-
true;
|
|
36
|
-
`;
|
|
37
|
-
function postMessage(data) {
|
|
38
|
-
if (!webviewRef.current) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
webviewRef.current.postMessage(JSON.stringify(data));
|
|
43
|
-
} catch (error) {}
|
|
44
|
-
}
|
|
45
|
-
async function onWebviewMessage(e) {
|
|
46
|
-
try {
|
|
47
|
-
if (e.nativeEvent && e.nativeEvent.data) {
|
|
48
|
-
const eventData = JSON.parse(e.nativeEvent.data);
|
|
49
|
-
const {
|
|
50
|
-
dataKey,
|
|
51
|
-
dataValue
|
|
52
|
-
} = eventData;
|
|
53
|
-
if (dataKey === 'chooseContact') {
|
|
54
|
-
const contactDetails = await getContact();
|
|
55
|
-
postMessage({
|
|
56
|
-
dataKey: 'contactSelected',
|
|
57
|
-
dataValue: contactDetails
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
if (dataKey === 'modalOpen') {
|
|
61
|
-
if (onEnterFullScreen) {
|
|
62
|
-
onEnterFullScreen();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (dataKey === 'modalClosed') {
|
|
66
|
-
if (onExitFullScreen) {
|
|
67
|
-
onExitFullScreen();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (dataKey === 'openLink') {
|
|
71
|
-
_reactNative.Linking.openURL(dataValue);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
} catch (error) {}
|
|
75
|
-
}
|
|
76
|
-
async function getContact() {
|
|
77
|
-
try {
|
|
78
|
-
const isPermissionGranted = await checkPermisionStatus();
|
|
79
|
-
if (!isPermissionGranted) {
|
|
80
|
-
return {
|
|
81
|
-
name: '',
|
|
82
|
-
phoneNumber: ''
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
const result = await (0, _reactNativeSelectContact.selectContactPhone)();
|
|
86
|
-
if (!result) {
|
|
87
|
-
return {
|
|
88
|
-
name: '',
|
|
89
|
-
phoneNumber: ''
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
let {
|
|
93
|
-
contact,
|
|
94
|
-
selectedPhone
|
|
95
|
-
} = result;
|
|
96
|
-
return {
|
|
97
|
-
name: contact.name,
|
|
98
|
-
phoneNumber: selectedPhone.number
|
|
99
|
-
};
|
|
100
|
-
} catch (error) {
|
|
101
|
-
return {
|
|
102
|
-
name: '',
|
|
103
|
-
phoneNumber: ''
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
async function checkPermisionStatus() {
|
|
108
|
-
if (_reactNative.Platform.OS === 'ios') {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
if (_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS) {
|
|
112
|
-
const granted = await _reactNative.PermissionsAndroid.request(_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS, {
|
|
113
|
-
title: 'Allow us access your contact list',
|
|
114
|
-
message: 'This will enable you choose a phone number to buy airtime or data for from your contact list',
|
|
115
|
-
buttonNegative: 'Cancel',
|
|
116
|
-
buttonPositive: 'OK'
|
|
117
|
-
});
|
|
118
|
-
if (granted === _reactNative.PermissionsAndroid.RESULTS.GRANTED) {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
if (view !== 'bills') {
|
|
125
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Invalid view");
|
|
126
|
-
}
|
|
127
|
-
if (!publicKey.includes('OMNIPUBKEY_')) {
|
|
128
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Invalid public key");
|
|
129
|
-
}
|
|
130
|
-
if (phoneNumber.length !== 11) {
|
|
131
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Invalid phone number");
|
|
132
|
-
}
|
|
133
|
-
if (color.length < 3) {
|
|
134
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Invalid color");
|
|
135
|
-
}
|
|
136
|
-
if (!['dev', 'prod'].includes(env)) {
|
|
137
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Invalid environment");
|
|
138
|
-
}
|
|
139
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
140
|
-
style: styles.full
|
|
141
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.WebView, {
|
|
142
|
-
source: {
|
|
143
|
-
uri: webUrl
|
|
144
|
-
},
|
|
145
|
-
style: styles.webview,
|
|
146
|
-
injectedJavaScriptBeforeContentLoaded: onWebviewMount,
|
|
147
|
-
onMessage: onWebviewMessage,
|
|
148
|
-
ref: webviewRef,
|
|
149
|
-
onLoadEnd: () => setWebviewStatus('success')
|
|
150
|
-
}), webviewStatus === 'loading' && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
151
|
-
style: styles.webviewLoader
|
|
152
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
153
|
-
size: "small",
|
|
154
|
-
color: color
|
|
155
|
-
}))));
|
|
15
|
+
const {
|
|
16
|
+
initiateBills
|
|
17
|
+
} = (0, _useOmnipay.useOmnipay)();
|
|
18
|
+
(0, _react.useEffect)(() => {
|
|
19
|
+
initiateBills(phoneNumber);
|
|
20
|
+
}, [phoneNumber]);
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null);
|
|
156
22
|
};
|
|
157
|
-
|
|
158
|
-
hide: {
|
|
159
|
-
display: 'none'
|
|
160
|
-
},
|
|
161
|
-
full: {
|
|
162
|
-
flex: 1,
|
|
163
|
-
width: '100%',
|
|
164
|
-
height: '100%'
|
|
165
|
-
},
|
|
166
|
-
webview: {
|
|
167
|
-
flex: 1,
|
|
168
|
-
width: '100%',
|
|
169
|
-
height: '100%'
|
|
170
|
-
},
|
|
171
|
-
webviewLoader: {
|
|
172
|
-
zIndex: 3,
|
|
173
|
-
backgroundColor: 'white',
|
|
174
|
-
alignItems: 'center',
|
|
175
|
-
justifyContent: 'center',
|
|
176
|
-
flex: 1,
|
|
177
|
-
width: '100%',
|
|
178
|
-
height: '100%',
|
|
179
|
-
position: 'absolute',
|
|
180
|
-
top: 0,
|
|
181
|
-
left: 0
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
var _default = OmnipayView;
|
|
185
|
-
exports.default = _default;
|
|
23
|
+
exports.Omnipay = Omnipay;
|
|
186
24
|
//# sourceMappingURL=OmnipayView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Omnipay","phoneNumber","initiateBills","useOmnipay","useEffect"],"sourceRoot":"../../src","sources":["OmnipayView.tsx"],"mappings":";;;;;;AAAA;AACA;AAAiD;AAAA;AAO1C,MAAMA,OAAO,GAAG,QAEU;EAAA,IAFT;IACpBC;EACU,CAAC;EACX,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,sBAAU,GAAE;EAEtC,IAAAC,gBAAS,EAAC,MAAM;IACZF,aAAa,CAACD,WAAW,CAAC;EAC9B,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAIjB,oBACI,6BAAC,eAAQ,OAEE;AAEnB,CAAC;AAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkPermisionStatus = checkPermisionStatus;
|
|
7
|
+
exports.getContact = getContact;
|
|
8
|
+
exports.getWebHost = getWebHost;
|
|
9
|
+
var _reactNative = require("react-native");
|
|
10
|
+
var _reactNativeSelectContact = require("react-native-select-contact");
|
|
11
|
+
async function checkPermisionStatus() {
|
|
12
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
if (_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS) {
|
|
16
|
+
const granted = await _reactNative.PermissionsAndroid.request(_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS, {
|
|
17
|
+
title: 'Allow us access your contact list',
|
|
18
|
+
message: 'This will enable you choose a phone number to buy airtime or data for from your contact list',
|
|
19
|
+
buttonNegative: 'Cancel',
|
|
20
|
+
buttonPositive: 'OK'
|
|
21
|
+
});
|
|
22
|
+
if (granted === _reactNative.PermissionsAndroid.RESULTS.GRANTED) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
async function getContact() {
|
|
29
|
+
try {
|
|
30
|
+
const isPermissionGranted = await checkPermisionStatus();
|
|
31
|
+
if (!isPermissionGranted) {
|
|
32
|
+
return {
|
|
33
|
+
name: '',
|
|
34
|
+
phoneNumber: ''
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const result = await (0, _reactNativeSelectContact.selectContactPhone)();
|
|
38
|
+
if (!result) {
|
|
39
|
+
return {
|
|
40
|
+
name: '',
|
|
41
|
+
phoneNumber: ''
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
let {
|
|
45
|
+
contact,
|
|
46
|
+
selectedPhone
|
|
47
|
+
} = result;
|
|
48
|
+
return {
|
|
49
|
+
name: contact.name,
|
|
50
|
+
phoneNumber: selectedPhone.number
|
|
51
|
+
};
|
|
52
|
+
} catch (error) {
|
|
53
|
+
return {
|
|
54
|
+
name: '',
|
|
55
|
+
phoneNumber: ''
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function getWebHost(env) {
|
|
60
|
+
if (env === 'dev') {
|
|
61
|
+
return 'https://omnipay-websdk.vercel.app/';
|
|
62
|
+
}
|
|
63
|
+
return 'https://sdk.omnipay.ng/';
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["checkPermisionStatus","Platform","OS","PermissionsAndroid","PERMISSIONS","READ_CONTACTS","granted","request","title","message","buttonNegative","buttonPositive","RESULTS","GRANTED","getContact","isPermissionGranted","name","phoneNumber","result","selectContactPhone","contact","selectedPhone","number","error","getWebHost","env"],"sourceRoot":"../../src","sources":["functions.ts"],"mappings":";;;;;;;;AAAA;AACA;AAEO,eAAeA,oBAAoB,GAAG;EACzC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACvB,OAAO,IAAI;EACf;EACA,IAAIC,+BAAkB,CAACC,WAAW,CAACC,aAAa,EAAE;IAC9C,MAAMC,OAAO,GAAG,MAAMH,+BAAkB,CAACI,OAAO,CAC5CJ,+BAAkB,CAACC,WAAW,CAACC,aAAa,EAC5C;MACIG,KAAK,EAAE,mCAAmC;MAC1CC,OAAO,EACH,8FAA8F;MAClGC,cAAc,EAAE,QAAQ;MACxBC,cAAc,EAAE;IACpB,CAAC,CACJ;IACD,IAAIL,OAAO,KAAKH,+BAAkB,CAACS,OAAO,CAACC,OAAO,EAAE;MAChD,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;AAEO,eAAeC,UAAU,GAAG;EAC/B,IAAI;IACA,MAAMC,mBAAmB,GAAG,MAAMf,oBAAoB,EAAE;IACxD,IAAI,CAACe,mBAAmB,EAAE;MACtB,OAAO;QAAEC,IAAI,EAAE,EAAE;QAAEC,WAAW,EAAE;MAAG,CAAC;IACxC;IACA,MAAMC,MAAM,GAAG,MAAM,IAAAC,4CAAkB,GAAE;IACzC,IAAI,CAACD,MAAM,EAAE;MACT,OAAO;QAAEF,IAAI,EAAE,EAAE;QAAEC,WAAW,EAAE;MAAG,CAAC;IACxC;IACA,IAAI;MAAEG,OAAO;MAAEC;IAAc,CAAC,GAAGH,MAAM;IACvC,OAAO;MAAEF,IAAI,EAAEI,OAAO,CAACJ,IAAI;MAAEC,WAAW,EAAEI,aAAa,CAACC;IAAO,CAAC;EACpE,CAAC,CAAC,OAAOC,KAAK,EAAE;IACZ,OAAO;MAAEP,IAAI,EAAE,EAAE;MAAEC,WAAW,EAAE;IAAG,CAAC;EACxC;AACJ;AAEO,SAASO,UAAU,CAACC,GAAmB,EAAE;EAC5C,IAAIA,GAAG,KAAK,KAAK,EAAE;IACf,OAAO,oCAAoC;EAC/C;EACA,OAAO,yBAAyB;AACpC"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "Omnipay", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _OmnipayView.Omnipay;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "OmnipayProvider", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
@@ -17,4 +23,5 @@ Object.defineProperty(exports, "useOmnipay", {
|
|
|
17
23
|
});
|
|
18
24
|
var _OmnipayProvider = require("./components/OmnipayProvider");
|
|
19
25
|
var _useOmnipay = require("./hooks/useOmnipay");
|
|
26
|
+
var _OmnipayView = require("./components/OmnipayView");
|
|
20
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useRef, useState } from 'react';
|
|
2
|
-
import { ActivityIndicator, Linking,
|
|
2
|
+
import { ActivityIndicator, Linking, Platform, StyleSheet, View } from 'react-native';
|
|
3
3
|
import WebView from 'react-native-webview';
|
|
4
|
-
import {
|
|
4
|
+
import { getContact } from '../functions';
|
|
5
5
|
export const OmnipayContext = /*#__PURE__*/React.createContext(null);
|
|
6
6
|
export const OmnipayProvider = _ref => {
|
|
7
7
|
let {
|
|
@@ -10,15 +10,16 @@ export const OmnipayProvider = _ref => {
|
|
|
10
10
|
env,
|
|
11
11
|
color
|
|
12
12
|
} = _ref;
|
|
13
|
-
const [webviewUrl, setWebviewUrl] = useState("");
|
|
14
13
|
const [webviewStatus, setWebviewStatus] = useState('loading');
|
|
15
14
|
const [useFullscreen, setUseFullScreen] = useState(false);
|
|
16
15
|
const webviewRef = useRef(null);
|
|
17
16
|
const webHost = getWebHost();
|
|
18
17
|
const webviewStyle = getWebviewStyle();
|
|
18
|
+
const [webviewUrl, setWebviewUrl] = useState(webHost);
|
|
19
|
+
const isNoviewLoaded = !webviewUrl.includes("view");
|
|
19
20
|
console.log(useFullscreen);
|
|
20
21
|
function getWebviewStyle() {
|
|
21
|
-
if (
|
|
22
|
+
if (isNoviewLoaded) {
|
|
22
23
|
return {
|
|
23
24
|
opacity: 0,
|
|
24
25
|
height: 0,
|
|
@@ -73,55 +74,8 @@ export const OmnipayProvider = _ref => {
|
|
|
73
74
|
}
|
|
74
75
|
} catch (error) {}
|
|
75
76
|
}
|
|
76
|
-
async function getContact() {
|
|
77
|
-
try {
|
|
78
|
-
const isPermissionGranted = await checkPermisionStatus();
|
|
79
|
-
if (!isPermissionGranted) {
|
|
80
|
-
return {
|
|
81
|
-
name: '',
|
|
82
|
-
phoneNumber: ''
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
const result = await selectContactPhone();
|
|
86
|
-
if (!result) {
|
|
87
|
-
return {
|
|
88
|
-
name: '',
|
|
89
|
-
phoneNumber: ''
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
let {
|
|
93
|
-
contact,
|
|
94
|
-
selectedPhone
|
|
95
|
-
} = result;
|
|
96
|
-
return {
|
|
97
|
-
name: contact.name,
|
|
98
|
-
phoneNumber: selectedPhone.number
|
|
99
|
-
};
|
|
100
|
-
} catch (error) {
|
|
101
|
-
return {
|
|
102
|
-
name: '',
|
|
103
|
-
phoneNumber: ''
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
async function checkPermisionStatus() {
|
|
108
|
-
if (Platform.OS === 'ios') {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
if (PermissionsAndroid.PERMISSIONS.READ_CONTACTS) {
|
|
112
|
-
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.READ_CONTACTS, {
|
|
113
|
-
title: 'Allow us access your contact list',
|
|
114
|
-
message: 'This will enable you choose a phone number to buy airtime or data for from your contact list',
|
|
115
|
-
buttonNegative: 'Cancel',
|
|
116
|
-
buttonPositive: 'OK'
|
|
117
|
-
});
|
|
118
|
-
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
77
|
const _initiateBills = useCallback(phoneNumber => {
|
|
78
|
+
console.log(phoneNumber);
|
|
125
79
|
if (phoneNumber) {
|
|
126
80
|
if (phoneNumber.length === 11) {
|
|
127
81
|
const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
@@ -133,7 +87,13 @@ export const OmnipayProvider = _ref => {
|
|
|
133
87
|
value: {
|
|
134
88
|
initiateBills: _initiateBills
|
|
135
89
|
}
|
|
136
|
-
},
|
|
90
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
91
|
+
style: {
|
|
92
|
+
flex: 1,
|
|
93
|
+
backgroundColor: "red",
|
|
94
|
+
height: "100%"
|
|
95
|
+
}
|
|
96
|
+
}, /*#__PURE__*/React.createElement(WebView, {
|
|
137
97
|
source: {
|
|
138
98
|
uri: webviewUrl
|
|
139
99
|
},
|
|
@@ -143,12 +103,12 @@ export const OmnipayProvider = _ref => {
|
|
|
143
103
|
ref: webviewRef,
|
|
144
104
|
onLoadStart: () => setWebviewStatus("loading"),
|
|
145
105
|
onLoadEnd: () => setWebviewStatus('success')
|
|
146
|
-
}), webviewStatus === 'loading' &&
|
|
106
|
+
}), webviewStatus === 'loading' && !isNoviewLoaded && /*#__PURE__*/React.createElement(View, {
|
|
147
107
|
style: styles.webviewLoader
|
|
148
108
|
}, /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
149
109
|
size: "small",
|
|
150
110
|
color: color
|
|
151
|
-
})));
|
|
111
|
+
})), children));
|
|
152
112
|
};
|
|
153
113
|
const styles = StyleSheet.create({
|
|
154
114
|
hide: {
|
|
@@ -162,8 +122,12 @@ const styles = StyleSheet.create({
|
|
|
162
122
|
webview: {
|
|
163
123
|
flex: 1,
|
|
164
124
|
width: '100%',
|
|
165
|
-
height:
|
|
125
|
+
height: 900
|
|
126
|
+
// position: "absolute",
|
|
127
|
+
// top: 0,
|
|
128
|
+
// left: 0
|
|
166
129
|
},
|
|
130
|
+
|
|
167
131
|
webviewLoader: {
|
|
168
132
|
zIndex: 3,
|
|
169
133
|
backgroundColor: 'white',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useRef","useState","ActivityIndicator","Linking","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useRef","useState","ActivityIndicator","Linking","Platform","StyleSheet","View","WebView","getContact","OmnipayContext","createContext","OmnipayProvider","children","publicKey","env","color","webviewStatus","setWebviewStatus","useFullscreen","setUseFullScreen","webviewRef","webHost","getWebHost","webviewStyle","getWebviewStyle","webviewUrl","setWebviewUrl","isNoviewLoaded","includes","console","log","opacity","height","width","flex","styles","webview","onWebviewMount","OS","postMessage","data","current","JSON","stringify","error","onWebviewMessage","e","nativeEvent","eventData","parse","dataKey","dataValue","contactDetails","openURL","_initiateBills","phoneNumber","length","webUrl","initiateBills","backgroundColor","uri","webviewLoader","create","hide","display","full","zIndex","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
|