omnipay-reactnative-sdk 0.2.3 → 0.2.5
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 +191 -0
- package/lib/commonjs/components/OmnipayProvider.js.map +1 -0
- package/lib/commonjs/components/OmnipayView.js +186 -0
- package/lib/commonjs/components/OmnipayView.js.map +1 -0
- package/lib/commonjs/hooks/useOmnipay.js +18 -0
- package/lib/commonjs/hooks/useOmnipay.js.map +1 -0
- package/lib/commonjs/index.js +11 -177
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/OmnipayProvider.js +180 -0
- package/lib/module/components/OmnipayProvider.js.map +1 -0
- package/lib/module/components/OmnipayView.js +177 -0
- package/lib/module/components/OmnipayView.js.map +1 -0
- package/lib/module/hooks/useOmnipay.js +12 -0
- package/lib/module/hooks/useOmnipay.js.map +1 -0
- package/lib/module/index.js +2 -176
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/OmnipayProvider.d.ts +14 -0
- package/lib/typescript/components/OmnipayProvider.d.ts.map +1 -0
- package/lib/typescript/components/OmnipayView.d.ts +12 -0
- package/lib/typescript/components/OmnipayView.d.ts.map +1 -0
- package/lib/typescript/hooks/useOmnipay.d.ts +4 -0
- package/lib/typescript/hooks/useOmnipay.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -11
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/OmnipayProvider.tsx +193 -0
- package/src/components/OmnipayView.tsx +204 -0
- package/src/hooks/useOmnipay.tsx +9 -0
- package/src/index.tsx +2 -204
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.OmnipayProvider = exports.OmnipayContext = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeWebview = _interopRequireDefault(require("react-native-webview"));
|
|
10
|
+
var _reactNativeSelectContact = require("react-native-select-contact");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
+
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; }
|
|
14
|
+
const OmnipayContext = /*#__PURE__*/_react.default.createContext(null);
|
|
15
|
+
exports.OmnipayContext = OmnipayContext;
|
|
16
|
+
const OmnipayProvider = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
children,
|
|
19
|
+
publicKey,
|
|
20
|
+
env,
|
|
21
|
+
color
|
|
22
|
+
} = _ref;
|
|
23
|
+
const [webviewUrl, setWebviewUrl] = (0, _react.useState)("");
|
|
24
|
+
const [webviewStatus, setWebviewStatus] = (0, _react.useState)('loading');
|
|
25
|
+
const [useFullscreen, setUseFullScreen] = (0, _react.useState)(false);
|
|
26
|
+
const webviewRef = (0, _react.useRef)(null);
|
|
27
|
+
const webHost = getWebHost();
|
|
28
|
+
const webviewStyle = getWebviewStyle();
|
|
29
|
+
console.log(useFullscreen);
|
|
30
|
+
function getWebviewStyle() {
|
|
31
|
+
if (webviewUrl === "") {
|
|
32
|
+
return {
|
|
33
|
+
opacity: 0,
|
|
34
|
+
height: 0,
|
|
35
|
+
width: 0,
|
|
36
|
+
flex: 0
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return styles.webview;
|
|
40
|
+
}
|
|
41
|
+
function getWebHost() {
|
|
42
|
+
if (env === 'dev') {
|
|
43
|
+
return 'https://omnipay-websdk.vercel.app/';
|
|
44
|
+
}
|
|
45
|
+
return 'https://sdk.omnipay.ng/';
|
|
46
|
+
}
|
|
47
|
+
const onWebviewMount = `
|
|
48
|
+
window.nativeOs = ${_reactNative.Platform.OS};
|
|
49
|
+
true;
|
|
50
|
+
`;
|
|
51
|
+
function postMessage(data) {
|
|
52
|
+
if (!webviewRef.current) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
webviewRef.current.postMessage(JSON.stringify(data));
|
|
57
|
+
} catch (error) {}
|
|
58
|
+
}
|
|
59
|
+
async function onWebviewMessage(e) {
|
|
60
|
+
try {
|
|
61
|
+
if (e.nativeEvent && e.nativeEvent.data) {
|
|
62
|
+
const eventData = JSON.parse(e.nativeEvent.data);
|
|
63
|
+
const {
|
|
64
|
+
dataKey,
|
|
65
|
+
dataValue
|
|
66
|
+
} = eventData;
|
|
67
|
+
if (dataKey === 'chooseContact') {
|
|
68
|
+
const contactDetails = await getContact();
|
|
69
|
+
postMessage({
|
|
70
|
+
dataKey: 'contactSelected',
|
|
71
|
+
dataValue: contactDetails
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (dataKey === 'openLink') {
|
|
75
|
+
_reactNative.Linking.openURL(dataValue);
|
|
76
|
+
}
|
|
77
|
+
if (dataKey === 'modalOpen') {
|
|
78
|
+
setUseFullScreen(true);
|
|
79
|
+
}
|
|
80
|
+
if (dataKey === 'modalClosed') {
|
|
81
|
+
setUseFullScreen(false);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
} catch (error) {}
|
|
85
|
+
}
|
|
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
|
+
const _initiateBills = (0, _react.useCallback)(phoneNumber => {
|
|
135
|
+
if (phoneNumber) {
|
|
136
|
+
if (phoneNumber.length === 11) {
|
|
137
|
+
const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
138
|
+
setWebviewUrl(webUrl);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}, []);
|
|
142
|
+
return /*#__PURE__*/_react.default.createElement(OmnipayContext.Provider, {
|
|
143
|
+
value: {
|
|
144
|
+
initiateBills: _initiateBills
|
|
145
|
+
}
|
|
146
|
+
}, children, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.default, {
|
|
147
|
+
source: {
|
|
148
|
+
uri: webviewUrl
|
|
149
|
+
},
|
|
150
|
+
style: webviewStyle,
|
|
151
|
+
injectedJavaScriptBeforeContentLoaded: onWebviewMount,
|
|
152
|
+
onMessage: onWebviewMessage,
|
|
153
|
+
ref: webviewRef,
|
|
154
|
+
onLoadStart: () => setWebviewStatus("loading"),
|
|
155
|
+
onLoadEnd: () => setWebviewStatus('success')
|
|
156
|
+
}), webviewStatus === 'loading' && webviewUrl !== "" && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
157
|
+
style: styles.webviewLoader
|
|
158
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
159
|
+
size: "small",
|
|
160
|
+
color: color
|
|
161
|
+
})));
|
|
162
|
+
};
|
|
163
|
+
exports.OmnipayProvider = OmnipayProvider;
|
|
164
|
+
const styles = _reactNative.StyleSheet.create({
|
|
165
|
+
hide: {
|
|
166
|
+
display: 'none'
|
|
167
|
+
},
|
|
168
|
+
full: {
|
|
169
|
+
flex: 1,
|
|
170
|
+
width: '100%',
|
|
171
|
+
height: '100%'
|
|
172
|
+
},
|
|
173
|
+
webview: {
|
|
174
|
+
flex: 1,
|
|
175
|
+
width: '100%',
|
|
176
|
+
height: '100%'
|
|
177
|
+
},
|
|
178
|
+
webviewLoader: {
|
|
179
|
+
zIndex: 3,
|
|
180
|
+
backgroundColor: 'white',
|
|
181
|
+
alignItems: 'center',
|
|
182
|
+
justifyContent: 'center',
|
|
183
|
+
flex: 1,
|
|
184
|
+
width: '100%',
|
|
185
|
+
height: '100%',
|
|
186
|
+
position: 'absolute',
|
|
187
|
+
top: 0,
|
|
188
|
+
left: 0
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=OmnipayProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OmnipayContext","React","createContext","OmnipayProvider","children","publicKey","env","color","webviewUrl","setWebviewUrl","useState","webviewStatus","setWebviewStatus","useFullscreen","setUseFullScreen","webviewRef","useRef","webHost","getWebHost","webviewStyle","getWebviewStyle","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","isPermissionGranted","checkPermisionStatus","name","phoneNumber","result","selectContactPhone","contact","selectedPhone","number","PermissionsAndroid","PERMISSIONS","READ_CONTACTS","granted","request","title","message","buttonNegative","buttonPositive","RESULTS","GRANTED","_initiateBills","useCallback","length","webUrl","initiateBills","uri","webviewLoader","StyleSheet","create","hide","display","full","zIndex","backgroundColor","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeWebview = require("react-native-webview");
|
|
10
|
+
var _reactNativeSelectContact = require("react-native-select-contact");
|
|
11
|
+
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
|
+
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 OmnipayView = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
color,
|
|
16
|
+
env,
|
|
17
|
+
publicKey,
|
|
18
|
+
phoneNumber,
|
|
19
|
+
view,
|
|
20
|
+
onEnterFullScreen,
|
|
21
|
+
onExitFullScreen
|
|
22
|
+
} = _ref;
|
|
23
|
+
const webviewRef = (0, _react.useRef)(null);
|
|
24
|
+
const [webviewStatus, setWebviewStatus] = (0, _react.useState)('loading');
|
|
25
|
+
const webHost = getWebHost();
|
|
26
|
+
const webUrl = `${webHost}?theme=${color}&view=${view}&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
27
|
+
function getWebHost() {
|
|
28
|
+
if (env === 'dev') {
|
|
29
|
+
return 'https://omnipay-websdk.vercel.app/';
|
|
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
|
+
}))));
|
|
156
|
+
};
|
|
157
|
+
const styles = _reactNative.StyleSheet.create({
|
|
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;
|
|
186
|
+
//# sourceMappingURL=OmnipayView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OmnipayView","color","env","publicKey","phoneNumber","view","onEnterFullScreen","onExitFullScreen","webviewRef","useRef","webviewStatus","setWebviewStatus","useState","webHost","getWebHost","webUrl","onWebviewMount","Platform","OS","postMessage","data","current","JSON","stringify","error","onWebviewMessage","e","nativeEvent","eventData","parse","dataKey","dataValue","contactDetails","getContact","Linking","openURL","isPermissionGranted","checkPermisionStatus","name","result","selectContactPhone","contact","selectedPhone","number","PermissionsAndroid","PERMISSIONS","READ_CONTACTS","granted","request","title","message","buttonNegative","buttonPositive","RESULTS","GRANTED","includes","length","styles","full","uri","webview","webviewLoader","StyleSheet","create","hide","display","flex","width","height","zIndex","backgroundColor","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../src","sources":["OmnipayView.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOmnipay = useOmnipay;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _OmnipayProvider = require("src/components/OmnipayProvider");
|
|
9
|
+
function useOmnipay() {
|
|
10
|
+
const {
|
|
11
|
+
initiateBills
|
|
12
|
+
} = (0, _react.useContext)(_OmnipayProvider.OmnipayContext);
|
|
13
|
+
return {
|
|
14
|
+
initiateBills: initiateBills
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
;
|
|
18
|
+
//# sourceMappingURL=useOmnipay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useOmnipay","initiateBills","useContext","OmnipayContext"],"sourceRoot":"../../src","sources":["useOmnipay.tsx"],"mappings":";;;;;;AAAA;AACA;AAEO,SAASA,UAAU,GAAG;EACzB,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,iBAAU,EAACC,+BAAc,CAAuB;EAC1E,OAAO;IACHF,aAAa,EAAEA;EACnB,CAAC;AACL;AAAC"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,184 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _reactNativeSelectContact = require("react-native-select-contact");
|
|
11
|
-
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
|
-
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 Omnipay = _ref => {
|
|
14
|
-
let {
|
|
15
|
-
color,
|
|
16
|
-
env,
|
|
17
|
-
publicKey,
|
|
18
|
-
phoneNumber,
|
|
19
|
-
view,
|
|
20
|
-
onEnterFullScreen,
|
|
21
|
-
onExitFullScreen
|
|
22
|
-
} = _ref;
|
|
23
|
-
const webviewRef = (0, _react.useRef)(null);
|
|
24
|
-
const [webviewStatus, setWebviewStatus] = (0, _react.useState)('loading');
|
|
25
|
-
const webHost = getWebHost();
|
|
26
|
-
const webUrl = `${webHost}?theme=${color}&view=${view}&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
27
|
-
function getWebHost() {
|
|
28
|
-
if (env === 'dev') {
|
|
29
|
-
return 'https://omnipay-websdk.vercel.app/';
|
|
30
|
-
}
|
|
31
|
-
return 'https://sdk.omnipay.ng/';
|
|
6
|
+
Object.defineProperty(exports, "OmnipayProvider", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _OmnipayProvider.OmnipayProvider;
|
|
32
10
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
}))));
|
|
156
|
-
};
|
|
157
|
-
const styles = _reactNative.StyleSheet.create({
|
|
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
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useOmnipay", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useOmnipay.useOmnipay;
|
|
182
16
|
}
|
|
183
17
|
});
|
|
184
|
-
var
|
|
185
|
-
|
|
18
|
+
var _OmnipayProvider = require("./components/OmnipayProvider");
|
|
19
|
+
var _useOmnipay = require("./hooks/useOmnipay");
|
|
186
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA"}
|