omnipay-reactnative-sdk 0.2.7 → 0.2.9
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 +39 -68
- package/lib/commonjs/components/OmnipayProvider.js.map +1 -1
- package/lib/commonjs/components/OmnipayView.js +12 -173
- 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 +4 -4
- package/lib/module/components/OmnipayProvider.js +39 -68
- package/lib/module/components/OmnipayProvider.js.map +1 -1
- package/lib/module/components/OmnipayView.js +11 -172
- 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 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/OmnipayProvider.d.ts +2 -1
- package/lib/typescript/components/OmnipayProvider.d.ts.map +1 -1
- package/lib/typescript/components/OmnipayView.d.ts +1 -7
- 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 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/OmnipayProvider.tsx +21 -45
- package/src/components/OmnipayView.tsx +9 -184
- package/src/functions.ts +49 -0
- package/src/index.tsx +1 -1
|
@@ -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; }
|
|
@@ -66,7 +66,7 @@ const OmnipayProvider = _ref => {
|
|
|
66
66
|
dataValue
|
|
67
67
|
} = eventData;
|
|
68
68
|
if (dataKey === 'chooseContact') {
|
|
69
|
-
const contactDetails = await getContact();
|
|
69
|
+
const contactDetails = await (0, _functions.getContact)();
|
|
70
70
|
postMessage({
|
|
71
71
|
dataKey: 'contactSelected',
|
|
72
72
|
dataValue: contactDetails
|
|
@@ -84,55 +84,8 @@ const OmnipayProvider = _ref => {
|
|
|
84
84
|
}
|
|
85
85
|
} catch (error) {}
|
|
86
86
|
}
|
|
87
|
-
async function getContact() {
|
|
88
|
-
try {
|
|
89
|
-
const isPermissionGranted = await checkPermisionStatus();
|
|
90
|
-
if (!isPermissionGranted) {
|
|
91
|
-
return {
|
|
92
|
-
name: '',
|
|
93
|
-
phoneNumber: ''
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
const result = await (0, _reactNativeSelectContact.selectContactPhone)();
|
|
97
|
-
if (!result) {
|
|
98
|
-
return {
|
|
99
|
-
name: '',
|
|
100
|
-
phoneNumber: ''
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
let {
|
|
104
|
-
contact,
|
|
105
|
-
selectedPhone
|
|
106
|
-
} = result;
|
|
107
|
-
return {
|
|
108
|
-
name: contact.name,
|
|
109
|
-
phoneNumber: selectedPhone.number
|
|
110
|
-
};
|
|
111
|
-
} catch (error) {
|
|
112
|
-
return {
|
|
113
|
-
name: '',
|
|
114
|
-
phoneNumber: ''
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
async function checkPermisionStatus() {
|
|
119
|
-
if (_reactNative.Platform.OS === 'ios') {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
if (_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS) {
|
|
123
|
-
const granted = await _reactNative.PermissionsAndroid.request(_reactNative.PermissionsAndroid.PERMISSIONS.READ_CONTACTS, {
|
|
124
|
-
title: 'Allow us access your contact list',
|
|
125
|
-
message: 'This will enable you choose a phone number to buy airtime or data for from your contact list',
|
|
126
|
-
buttonNegative: 'Cancel',
|
|
127
|
-
buttonPositive: 'OK'
|
|
128
|
-
});
|
|
129
|
-
if (granted === _reactNative.PermissionsAndroid.RESULTS.GRANTED) {
|
|
130
|
-
return true;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
87
|
const _initiateBills = (0, _react.useCallback)(phoneNumber => {
|
|
88
|
+
console.log(phoneNumber);
|
|
136
89
|
if (phoneNumber) {
|
|
137
90
|
if (phoneNumber.length === 11) {
|
|
138
91
|
const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
@@ -140,26 +93,40 @@ const OmnipayProvider = _ref => {
|
|
|
140
93
|
}
|
|
141
94
|
}
|
|
142
95
|
}, []);
|
|
96
|
+
function WebviewContainer() {
|
|
97
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
98
|
+
style: {
|
|
99
|
+
flex: 1,
|
|
100
|
+
height: "100%"
|
|
101
|
+
}
|
|
102
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.default, {
|
|
103
|
+
source: {
|
|
104
|
+
uri: webviewUrl
|
|
105
|
+
},
|
|
106
|
+
style: webviewStyle,
|
|
107
|
+
injectedJavaScriptBeforeContentLoaded: onWebviewMount,
|
|
108
|
+
onMessage: onWebviewMessage,
|
|
109
|
+
ref: webviewRef,
|
|
110
|
+
onLoadStart: () => setWebviewStatus("loading"),
|
|
111
|
+
onLoadEnd: () => setWebviewStatus('success')
|
|
112
|
+
}), webviewStatus === 'loading' && !isNoviewLoaded && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
113
|
+
style: styles.webviewLoader
|
|
114
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
115
|
+
size: "small",
|
|
116
|
+
color: color
|
|
117
|
+
})));
|
|
118
|
+
}
|
|
143
119
|
return /*#__PURE__*/_react.default.createElement(OmnipayContext.Provider, {
|
|
144
120
|
value: {
|
|
145
|
-
initiateBills: _initiateBills
|
|
121
|
+
initiateBills: _initiateBills,
|
|
122
|
+
container: WebviewContainer()
|
|
123
|
+
}
|
|
124
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
125
|
+
style: {
|
|
126
|
+
flex: 1,
|
|
127
|
+
height: "100%"
|
|
146
128
|
}
|
|
147
|
-
}, children
|
|
148
|
-
source: {
|
|
149
|
-
uri: webviewUrl
|
|
150
|
-
},
|
|
151
|
-
style: webviewStyle,
|
|
152
|
-
injectedJavaScriptBeforeContentLoaded: onWebviewMount,
|
|
153
|
-
onMessage: onWebviewMessage,
|
|
154
|
-
ref: webviewRef,
|
|
155
|
-
onLoadStart: () => setWebviewStatus("loading"),
|
|
156
|
-
onLoadEnd: () => setWebviewStatus('success')
|
|
157
|
-
}), webviewStatus === 'loading' && !isNoviewLoaded && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
158
|
-
style: styles.webviewLoader
|
|
159
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
160
|
-
size: "small",
|
|
161
|
-
color: color
|
|
162
|
-
})));
|
|
129
|
+
}, children));
|
|
163
130
|
};
|
|
164
131
|
exports.OmnipayProvider = OmnipayProvider;
|
|
165
132
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -174,8 +141,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
174
141
|
webview: {
|
|
175
142
|
flex: 1,
|
|
176
143
|
width: '100%',
|
|
177
|
-
height:
|
|
144
|
+
height: 900
|
|
145
|
+
// position: "absolute",
|
|
146
|
+
// top: 0,
|
|
147
|
+
// left: 0
|
|
178
148
|
},
|
|
149
|
+
|
|
179
150
|
webviewLoader: {
|
|
180
151
|
zIndex: 3,
|
|
181
152
|
backgroundColor: 'white',
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
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","WebviewContainer","uri","webviewLoader","initiateBills","container","StyleSheet","create","hide","display","full","zIndex","backgroundColor","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAA0C;AAAA;AAAA;AAoBnC,MAAMA,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAA4B,IAAI,CAAC;AAAC;AAE5E,MAAMC,eAAe,GAAG,QAA+D;EAAA,IAA9D;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,GAAG;IAAEC;EAA4B,CAAC;EACrF,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAS,SAAS,CAAC;EACrE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACzD,MAAMG,UAAU,GAAG,IAAAC,aAAM,EAAU,IAAI,CAAC;EACxC,MAAMC,OAAO,GAAGC,UAAU,EAAE;EAC5B,MAAMC,YAAY,GAAGC,eAAe,EAAE;EACtC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAV,eAAQ,EAACK,OAAO,CAAC;EACrD,MAAMM,cAAc,GAAG,CAACF,UAAU,CAACG,QAAQ,CAAC,MAAM,CAAC;EAEnDC,OAAO,CAACC,GAAG,CAACb,aAAa,CAAC;EAG1B,SAASO,eAAe,GAAG;IACvB,IAAIG,cAAc,EAAE;MAChB,OAAO;QAAEI,OAAO,EAAE,CAAC;QAAEC,MAAM,EAAE,CAAC;QAAEC,KAAK,EAAE,CAAC;QAAEC,IAAI,EAAE;MAAE,CAAC;IACvD;IACA,OAAOC,MAAM,CAACC,OAAO;EACzB;EAEA,SAASd,UAAU,GAAG;IAClB,IAAIV,GAAG,KAAK,KAAK,EAAE;MACf,OAAO,oCAAoC;IAC/C;IACA,OAAO,yBAAyB;EACpC;EAGA,MAAMyB,cAAc,GAAI;AAC5B,0BAA0BC,qBAAQ,CAACC,EAAG;AACtC;AACA,KAAK;EAED,SAASC,WAAW,CAACC,IAAiB,EAAE;IACpC,IAAI,CAACtB,UAAU,CAACuB,OAAO,EAAE;MACrB;IACJ;IACA,IAAI;MACAvB,UAAU,CAACuB,OAAO,CAACF,WAAW,CAACG,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,OAAOI,KAAK,EAAE,CAAE;EACtB;EAEA,eAAeC,gBAAgB,CAACC,CAAsB,EAAE;IACpD,IAAI;MACA,IAAIA,CAAC,CAACC,WAAW,IAAID,CAAC,CAACC,WAAW,CAACP,IAAI,EAAE;QACrC,MAAMQ,SAAS,GAAGN,IAAI,CAACO,KAAK,CAACH,CAAC,CAACC,WAAW,CAACP,IAAI,CAAC;QAChD,MAAM;UAAEU,OAAO;UAAEC;QAAU,CAAC,GAAGH,SAAS;QACxC,IAAIE,OAAO,KAAK,eAAe,EAAE;UAC7B,MAAME,cAAc,GAAG,MAAM,IAAAC,qBAAU,GAAE;UACzCd,WAAW,CAAC;YACRW,OAAO,EAAE,iBAAiB;YAC1BC,SAAS,EAAEC;UACf,CAAC,CAAC;QACN;QAEA,IAAIF,OAAO,KAAK,UAAU,EAAE;UACxBI,oBAAO,CAACC,OAAO,CAACJ,SAAS,CAAC;QAC9B;QACA,IAAID,OAAO,KAAK,WAAW,EAAE;UACzBjC,gBAAgB,CAAC,IAAI,CAAC;QAC1B;QACA,IAAIiC,OAAO,KAAK,aAAa,EAAE;UAC3BjC,gBAAgB,CAAC,KAAK,CAAC;QAC3B;MACJ;IACJ,CAAC,CAAC,OAAO2B,KAAK,EAAE,CAAE;EACtB;EAIA,MAAMY,cAAc,GAAG,IAAAC,kBAAW,EAE1BC,WAAmB,IAClB;IACD9B,OAAO,CAACC,GAAG,CAAC6B,WAAW,CAAC;IACxB,IAAIA,WAAW,EAAE;MACb,IAAIA,WAAW,CAACC,MAAM,KAAK,EAAE,EAAE;QAC3B,MAAMC,MAAM,GAAI,GAAExC,OAAQ,UAASR,KAAM,yBAAwBF,SAAU,gBAAegD,WAAY,EAAC;QACvGjC,aAAa,CAACmC,MAAM,CAAC;MACzB;IACJ;EACJ,CAAC,EACD,EAAE,CACL;EAED,SAASC,gBAAgB,GAAG;IACxB,oBAAO,6BAAC,iBAAI;MAAC,KAAK,EAAE;QAAE5B,IAAI,EAAE,CAAC;QAAEF,MAAM,EAAE;MAAO;IAAE,gBAC5C,6BAAC,2BAAO;MACJ,MAAM,EAAE;QACJ+B,GAAG,EAAEtC;MACT,CAAE;MACF,KAAK,EAAEF,YAAa;MACpB,qCAAqC,EAAEc,cAAe;MACtD,SAAS,EAAES,gBAAiB;MAC5B,GAAG,EAAE3B,UAAW;MAChB,WAAW,EAAE,MAAMJ,gBAAgB,CAAC,SAAS,CAAE;MAC/C,SAAS,EAAE,MAAMA,gBAAgB,CAAC,SAAS;IAAE,EAC/C,EACDD,aAAa,KAAK,SAAS,IAAI,CAACa,cAAc,iBAC3C,6BAAC,iBAAI;MAAC,KAAK,EAAEQ,MAAM,CAAC6B;IAAc,gBAC9B,6BAAC,8BAAiB;MAAC,IAAI,EAAC,OAAO;MAAC,KAAK,EAAEnD;IAAM,EAAG,CAEvD,CACE;EACX;EAGA,oBACI,6BAAC,cAAc,CAAC,QAAQ;IAAC,KAAK,EAAE;MAAEoD,aAAa,EAAER,cAAc;MAAES,SAAS,EAAEJ,gBAAgB;IAAG;EAAE,gBAC7F,6BAAC,iBAAI;IAAC,KAAK,EAAE;MAAE5B,IAAI,EAAE,CAAC;MAAEF,MAAM,EAAE;IAAO;EAAE,GACpCtB,QAAQ,CACN,CACe;AAElC,CAAC;AAAC;AAEF,MAAMyB,MAAM,GAAGgC,uBAAU,CAACC,MAAM,CAAC;EAC7BC,IAAI,EAAE;IACFC,OAAO,EAAE;EACb,CAAC;EACDC,IAAI,EAAE;IACFrC,IAAI,EAAE,CAAC;IACPD,KAAK,EAAE,MAAM;IACbD,MAAM,EAAE;EACZ,CAAC;EACDI,OAAO,EAAE;IACLF,IAAI,EAAE,CAAC;IACPD,KAAK,EAAE,MAAM;IACbD,MAAM,EAAE;IACR;IACA;IACA;EACJ,CAAC;;EACDgC,aAAa,EAAE;IACXQ,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBzC,IAAI,EAAE,CAAC;IACPD,KAAK,EAAE,MAAM;IACbD,MAAM,EAAE,MAAM;IACd4C,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE;EACV;AACJ,CAAC,CAAC"}
|
|
@@ -3,183 +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
|
-
exports.
|
|
158
|
-
const styles = _reactNative.StyleSheet.create({
|
|
159
|
-
hide: {
|
|
160
|
-
display: 'none'
|
|
161
|
-
},
|
|
162
|
-
full: {
|
|
163
|
-
flex: 1,
|
|
164
|
-
width: '100%',
|
|
165
|
-
height: '100%'
|
|
166
|
-
},
|
|
167
|
-
webview: {
|
|
168
|
-
flex: 1,
|
|
169
|
-
width: '100%',
|
|
170
|
-
height: '100%'
|
|
171
|
-
},
|
|
172
|
-
webviewLoader: {
|
|
173
|
-
zIndex: 3,
|
|
174
|
-
backgroundColor: 'white',
|
|
175
|
-
alignItems: 'center',
|
|
176
|
-
justifyContent: 'center',
|
|
177
|
-
flex: 1,
|
|
178
|
-
width: '100%',
|
|
179
|
-
height: '100%',
|
|
180
|
-
position: 'absolute',
|
|
181
|
-
top: 0,
|
|
182
|
-
left: 0
|
|
183
|
-
}
|
|
184
|
-
});
|
|
23
|
+
exports.Omnipay = Omnipay;
|
|
185
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,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "Omnipay", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _OmnipayView.Omnipay;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "OmnipayProvider", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _OmnipayProvider.OmnipayProvider;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "useOmnipay", {
|
|
@@ -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 {
|
|
@@ -74,55 +74,8 @@ export const OmnipayProvider = _ref => {
|
|
|
74
74
|
}
|
|
75
75
|
} catch (error) {}
|
|
76
76
|
}
|
|
77
|
-
async function getContact() {
|
|
78
|
-
try {
|
|
79
|
-
const isPermissionGranted = await checkPermisionStatus();
|
|
80
|
-
if (!isPermissionGranted) {
|
|
81
|
-
return {
|
|
82
|
-
name: '',
|
|
83
|
-
phoneNumber: ''
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
const result = await selectContactPhone();
|
|
87
|
-
if (!result) {
|
|
88
|
-
return {
|
|
89
|
-
name: '',
|
|
90
|
-
phoneNumber: ''
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
let {
|
|
94
|
-
contact,
|
|
95
|
-
selectedPhone
|
|
96
|
-
} = result;
|
|
97
|
-
return {
|
|
98
|
-
name: contact.name,
|
|
99
|
-
phoneNumber: selectedPhone.number
|
|
100
|
-
};
|
|
101
|
-
} catch (error) {
|
|
102
|
-
return {
|
|
103
|
-
name: '',
|
|
104
|
-
phoneNumber: ''
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
async function checkPermisionStatus() {
|
|
109
|
-
if (Platform.OS === 'ios') {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
if (PermissionsAndroid.PERMISSIONS.READ_CONTACTS) {
|
|
113
|
-
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.READ_CONTACTS, {
|
|
114
|
-
title: 'Allow us access your contact list',
|
|
115
|
-
message: 'This will enable you choose a phone number to buy airtime or data for from your contact list',
|
|
116
|
-
buttonNegative: 'Cancel',
|
|
117
|
-
buttonPositive: 'OK'
|
|
118
|
-
});
|
|
119
|
-
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
77
|
const _initiateBills = useCallback(phoneNumber => {
|
|
78
|
+
console.log(phoneNumber);
|
|
126
79
|
if (phoneNumber) {
|
|
127
80
|
if (phoneNumber.length === 11) {
|
|
128
81
|
const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
|
|
@@ -130,26 +83,40 @@ export const OmnipayProvider = _ref => {
|
|
|
130
83
|
}
|
|
131
84
|
}
|
|
132
85
|
}, []);
|
|
86
|
+
function WebviewContainer() {
|
|
87
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
88
|
+
style: {
|
|
89
|
+
flex: 1,
|
|
90
|
+
height: "100%"
|
|
91
|
+
}
|
|
92
|
+
}, /*#__PURE__*/React.createElement(WebView, {
|
|
93
|
+
source: {
|
|
94
|
+
uri: webviewUrl
|
|
95
|
+
},
|
|
96
|
+
style: webviewStyle,
|
|
97
|
+
injectedJavaScriptBeforeContentLoaded: onWebviewMount,
|
|
98
|
+
onMessage: onWebviewMessage,
|
|
99
|
+
ref: webviewRef,
|
|
100
|
+
onLoadStart: () => setWebviewStatus("loading"),
|
|
101
|
+
onLoadEnd: () => setWebviewStatus('success')
|
|
102
|
+
}), webviewStatus === 'loading' && !isNoviewLoaded && /*#__PURE__*/React.createElement(View, {
|
|
103
|
+
style: styles.webviewLoader
|
|
104
|
+
}, /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
105
|
+
size: "small",
|
|
106
|
+
color: color
|
|
107
|
+
})));
|
|
108
|
+
}
|
|
133
109
|
return /*#__PURE__*/React.createElement(OmnipayContext.Provider, {
|
|
134
110
|
value: {
|
|
135
|
-
initiateBills: _initiateBills
|
|
111
|
+
initiateBills: _initiateBills,
|
|
112
|
+
container: WebviewContainer()
|
|
136
113
|
}
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
onMessage: onWebviewMessage,
|
|
144
|
-
ref: webviewRef,
|
|
145
|
-
onLoadStart: () => setWebviewStatus("loading"),
|
|
146
|
-
onLoadEnd: () => setWebviewStatus('success')
|
|
147
|
-
}), webviewStatus === 'loading' && !isNoviewLoaded && /*#__PURE__*/React.createElement(View, {
|
|
148
|
-
style: styles.webviewLoader
|
|
149
|
-
}, /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
150
|
-
size: "small",
|
|
151
|
-
color: color
|
|
152
|
-
})));
|
|
114
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
115
|
+
style: {
|
|
116
|
+
flex: 1,
|
|
117
|
+
height: "100%"
|
|
118
|
+
}
|
|
119
|
+
}, children));
|
|
153
120
|
};
|
|
154
121
|
const styles = StyleSheet.create({
|
|
155
122
|
hide: {
|
|
@@ -163,8 +130,12 @@ const styles = StyleSheet.create({
|
|
|
163
130
|
webview: {
|
|
164
131
|
flex: 1,
|
|
165
132
|
width: '100%',
|
|
166
|
-
height:
|
|
133
|
+
height: 900
|
|
134
|
+
// position: "absolute",
|
|
135
|
+
// top: 0,
|
|
136
|
+
// left: 0
|
|
167
137
|
},
|
|
138
|
+
|
|
168
139
|
webviewLoader: {
|
|
169
140
|
zIndex: 3,
|
|
170
141
|
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","WebviewContainer","uri","webviewLoader","initiateBills","container","create","hide","display","full","zIndex","backgroundColor","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
|