omnipay-reactnative-sdk 0.4.4 → 0.4.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/README.md +29 -24
- package/lib/commonjs/components/OmnipayProvider.js +39 -10
- package/lib/commonjs/components/OmnipayProvider.js.map +1 -1
- package/lib/commonjs/hooks/useOmnipay.js +4 -2
- package/lib/commonjs/hooks/useOmnipay.js.map +1 -1
- package/lib/module/components/OmnipayProvider.js +39 -10
- package/lib/module/components/OmnipayProvider.js.map +1 -1
- package/lib/module/hooks/useOmnipay.js +4 -2
- package/lib/module/hooks/useOmnipay.js.map +1 -1
- package/lib/typescript/components/OmnipayProvider.d.ts +11 -0
- package/lib/typescript/components/OmnipayProvider.d.ts.map +1 -1
- package/lib/typescript/hooks/useOmnipay.d.ts +10 -0
- package/lib/typescript/hooks/useOmnipay.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/OmnipayProvider.tsx +72 -16
- package/src/hooks/useOmnipay.tsx +4 -1
package/README.md
CHANGED
|
@@ -52,19 +52,6 @@ android.enableJetifier=true
|
|
|
52
52
|
## Usage
|
|
53
53
|
|
|
54
54
|
```js
|
|
55
|
-
// usage with Omnipay component
|
|
56
|
-
import { Omnipay } from 'omnipay-reactnative-sdk';
|
|
57
|
-
|
|
58
|
-
<Omnipay
|
|
59
|
-
color="#FD7A23"
|
|
60
|
-
env="dev"
|
|
61
|
-
phoneNumber="08020001111"
|
|
62
|
-
publicKey="OMNIPUBKEY_HZA3ERGYEE5XUFGTZDQV_MNKRSTA3-TU"
|
|
63
|
-
view="bills"
|
|
64
|
-
onEnterFullScreen={() => hideExtraUiElements()}
|
|
65
|
-
onExitFullScreen={() => unhideExtraUiElements()}
|
|
66
|
-
/>;
|
|
67
|
-
|
|
68
55
|
// usage with useOmnipay hook
|
|
69
56
|
import { OmnipayProvider, useOmnipay } from 'omnipay-reactnative-sdk';
|
|
70
57
|
|
|
@@ -78,24 +65,42 @@ import { OmnipayProvider, useOmnipay } from 'omnipay-reactnative-sdk';
|
|
|
78
65
|
</OmnipayProvider>;
|
|
79
66
|
|
|
80
67
|
// import useOmnipay hook in the component you need to show the bills sdk in
|
|
81
|
-
const { initiateBills } = useOmnipay();
|
|
68
|
+
const { initiateBills, initiateWallet } = useOmnipay();
|
|
82
69
|
|
|
83
70
|
function onBillsClosed() {
|
|
84
71
|
console.log('sdk is closed..you can do some stuff');
|
|
85
72
|
}
|
|
86
73
|
|
|
74
|
+
function onWalletClosed() {
|
|
75
|
+
console.log('wallet is closed..you can do some stuff');
|
|
76
|
+
}
|
|
77
|
+
|
|
87
78
|
initiateBills({ phoneNumber: '08020001111', onClose: onBillsClosed });
|
|
79
|
+
initiateWallet({
|
|
80
|
+
phoneNumber: '08020001111',
|
|
81
|
+
onClose: onWalletClosed,
|
|
82
|
+
usesAirtimeData: true,
|
|
83
|
+
usesBills: true,
|
|
84
|
+
usesPaylater: true,
|
|
85
|
+
usesPromo: true,
|
|
86
|
+
usesPos: true,
|
|
87
|
+
usesTransfer: true,
|
|
88
|
+
});
|
|
88
89
|
```
|
|
89
90
|
|
|
90
91
|
### Properties
|
|
91
92
|
|
|
92
|
-
| Name
|
|
93
|
-
|
|
|
94
|
-
| color
|
|
95
|
-
| env
|
|
96
|
-
| phoneNumber
|
|
97
|
-
| publicKey
|
|
98
|
-
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
93
|
+
| Name | Type | Description |
|
|
94
|
+
| ----------- | ------ | ------------------------------------ |
|
|
95
|
+
| color | String | color of primary buttons and links |
|
|
96
|
+
| env | String | dev or prod |
|
|
97
|
+
| phoneNumber | String | phone number of the customer |
|
|
98
|
+
| publicKey | String | public key of the company on omnipay |
|
|
99
|
+
|
|
100
|
+
| onClose | Function | this is used to notify you when the sdk closes |
|
|
101
|
+
| usesAirtimeData | Boolean| whether to show airtime and data shortcut in wallet view |
|
|
102
|
+
| usesBills | Boolean| whether to show bills shortcut in wallet view |
|
|
103
|
+
| usesPaylater | Boolean| whether to paylater tab in wallet view |
|
|
104
|
+
| usesPromo | Boolean| whether to show promo tab in wallet view |
|
|
105
|
+
| usesPos | Boolean| whether to pos shortcur in wallet view |
|
|
106
|
+
| usesTransfer | Boolean| whether to transfer shortcut in wallet view |
|
|
@@ -12,7 +12,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
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; }
|
|
14
14
|
let defaultValue = {
|
|
15
|
-
initiateBills: () => null
|
|
15
|
+
initiateBills: () => null,
|
|
16
|
+
initiateWallet: () => null
|
|
16
17
|
};
|
|
17
18
|
const OmnipayContext = /*#__PURE__*/_react.default.createContext(defaultValue);
|
|
18
19
|
exports.OmnipayContext = OmnipayContext;
|
|
@@ -109,6 +110,26 @@ const OmnipayProvider = _ref => {
|
|
|
109
110
|
}
|
|
110
111
|
console.warn('Omnipay error: Invalid phone number');
|
|
111
112
|
};
|
|
113
|
+
const _initiateWallet = _ref3 => {
|
|
114
|
+
let {
|
|
115
|
+
phoneNumber,
|
|
116
|
+
onClose,
|
|
117
|
+
usesPaylater = false,
|
|
118
|
+
usesPromo = false,
|
|
119
|
+
usesAirtimeData = false,
|
|
120
|
+
usesTransfer = false,
|
|
121
|
+
usesBills = false,
|
|
122
|
+
usesPos = false
|
|
123
|
+
} = _ref3;
|
|
124
|
+
if (typeof phoneNumber === 'string' && phoneNumber.length === 11) {
|
|
125
|
+
const webUrl = `${webHost}?theme=${color}&view=wallet&publicKey=${publicKey}&phoneNumber=${phoneNumber}&usesPaylater=${usesPaylater}&usesPromo=${usesPromo}&usesAirtimeData=${usesAirtimeData}&usesTransfer=${usesTransfer}&usesBills=${usesBills}&usesPos=${usesPos}`;
|
|
126
|
+
setWebviewUrl(webUrl);
|
|
127
|
+
setIsVisible(true);
|
|
128
|
+
onCloseRef.current = onClose;
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
console.warn('Omnipay error: Invalid phone number');
|
|
132
|
+
};
|
|
112
133
|
function closeWebview() {
|
|
113
134
|
setIsVisible(false);
|
|
114
135
|
if (onCloseRef.current && typeof onCloseRef.current === 'function') {
|
|
@@ -118,9 +139,11 @@ const OmnipayProvider = _ref => {
|
|
|
118
139
|
}
|
|
119
140
|
const webviewStyle = getWebviewStyle();
|
|
120
141
|
const isPropsValid = isValidColor && !!publicKey && isValidEnv;
|
|
142
|
+
const isWalletView = webviewUrl.includes('view=wallet');
|
|
121
143
|
return /*#__PURE__*/_react.default.createElement(OmnipayContext.Provider, {
|
|
122
144
|
value: {
|
|
123
|
-
initiateBills: _initiateBills
|
|
145
|
+
initiateBills: _initiateBills,
|
|
146
|
+
initiateWallet: _initiateWallet
|
|
124
147
|
}
|
|
125
148
|
}, isPropsValid && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, webviewUrl.includes('view') && /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
|
|
126
149
|
visible: showWebview,
|
|
@@ -132,9 +155,9 @@ const OmnipayProvider = _ref => {
|
|
|
132
155
|
onPress: closeWebview
|
|
133
156
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
134
157
|
style: [styles.container, {
|
|
135
|
-
paddingTop: containerOffset
|
|
158
|
+
paddingTop: isWalletView ? 0 : containerOffset
|
|
136
159
|
}]
|
|
137
|
-
}, containerOffset !== 0 && webviewStatus === 'success' && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
160
|
+
}, containerOffset !== 0 && webviewStatus === 'success' && !isWalletView && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
138
161
|
style: styles.close,
|
|
139
162
|
onPress: closeWebview
|
|
140
163
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
@@ -174,8 +197,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
174
197
|
webview: {
|
|
175
198
|
flex: 1,
|
|
176
199
|
width: '100%',
|
|
177
|
-
height: _reactNative.Dimensions.get('window').height -
|
|
178
|
-
backgroundColor: 'white'
|
|
200
|
+
height: _reactNative.Dimensions.get('window').height - 70,
|
|
201
|
+
backgroundColor: 'white',
|
|
202
|
+
borderTopRightRadius: 20,
|
|
203
|
+
borderTopLeftRadius: 20
|
|
179
204
|
},
|
|
180
205
|
webviewLoader: {
|
|
181
206
|
zIndex: 3,
|
|
@@ -187,7 +212,9 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
187
212
|
height: '100%',
|
|
188
213
|
position: 'absolute',
|
|
189
214
|
top: 0,
|
|
190
|
-
left: 0
|
|
215
|
+
left: 0,
|
|
216
|
+
borderTopRightRadius: 20,
|
|
217
|
+
borderTopLeftRadius: 20
|
|
191
218
|
},
|
|
192
219
|
backdrop: {
|
|
193
220
|
backgroundColor: 'rgba(0,0,0,0.48)',
|
|
@@ -200,7 +227,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
200
227
|
backgroundColor: 'white',
|
|
201
228
|
borderTopRightRadius: 20,
|
|
202
229
|
borderTopLeftRadius: 20,
|
|
203
|
-
maxHeight: _reactNative.Dimensions.get('window').height -
|
|
230
|
+
maxHeight: _reactNative.Dimensions.get('window').height - 70,
|
|
204
231
|
flex: 1,
|
|
205
232
|
position: 'relative'
|
|
206
233
|
},
|
|
@@ -228,8 +255,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
228
255
|
},
|
|
229
256
|
contentContainer: {
|
|
230
257
|
flex: 1,
|
|
231
|
-
height: _reactNative.Dimensions.get('window').height -
|
|
232
|
-
position: 'relative'
|
|
258
|
+
height: _reactNative.Dimensions.get('window').height - 70,
|
|
259
|
+
position: 'relative',
|
|
260
|
+
borderTopRightRadius: 20,
|
|
261
|
+
borderTopLeftRadius: 20
|
|
233
262
|
}
|
|
234
263
|
});
|
|
235
264
|
//# sourceMappingURL=OmnipayProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultValue","initiateBills","OmnipayContext","React","createContext","OmnipayProvider","children","publicKey","env","color","webviewStatus","setWebviewStatus","useState","isVisible","setIsVisible","webviewRef","useRef","webHost","getWebHost","webviewUrl","setWebviewUrl","showWebview","includes","containerOffset","setContainerOffset","isValidEnv","isValidColor","length","onCloseRef","undefined","getWebviewStyle","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","closeWebview","_initiateBills","phoneNumber","onClose","webUrl","console","warn","webviewStyle","isPropsValid","modal","backdrop","container","paddingTop","close","require","closeIcon","contentContainer","uri","webviewLoader","StyleSheet","create","hide","display","full","Dimensions","get","backgroundColor","zIndex","alignItems","justifyContent","position","top","left","
|
|
1
|
+
{"version":3,"names":["defaultValue","initiateBills","initiateWallet","OmnipayContext","React","createContext","OmnipayProvider","children","publicKey","env","color","webviewStatus","setWebviewStatus","useState","isVisible","setIsVisible","webviewRef","useRef","webHost","getWebHost","webviewUrl","setWebviewUrl","showWebview","includes","containerOffset","setContainerOffset","isValidEnv","isValidColor","length","onCloseRef","undefined","getWebviewStyle","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","closeWebview","_initiateBills","phoneNumber","onClose","webUrl","console","warn","_initiateWallet","usesPaylater","usesPromo","usesAirtimeData","usesTransfer","usesBills","usesPos","webviewStyle","isPropsValid","isWalletView","modal","backdrop","container","paddingTop","close","require","closeIcon","contentContainer","uri","webviewLoader","StyleSheet","create","hide","display","full","Dimensions","get","backgroundColor","borderTopRightRadius","borderTopLeftRadius","zIndex","alignItems","justifyContent","position","top","left","maxHeight","right","borderRadius"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
|
|
@@ -8,10 +8,12 @@ var _react = require("react");
|
|
|
8
8
|
var _OmnipayProvider = require("../components/OmnipayProvider");
|
|
9
9
|
function useOmnipay() {
|
|
10
10
|
const {
|
|
11
|
-
initiateBills
|
|
11
|
+
initiateBills,
|
|
12
|
+
initiateWallet
|
|
12
13
|
} = (0, _react.useContext)(_OmnipayProvider.OmnipayContext);
|
|
13
14
|
return {
|
|
14
|
-
initiateBills
|
|
15
|
+
initiateBills,
|
|
16
|
+
initiateWallet
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=useOmnipay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useOmnipay","initiateBills","useContext","OmnipayContext"],"sourceRoot":"../../src","sources":["useOmnipay.tsx"],"mappings":";;;;;;AAAA;AACA;AAKO,SAASA,UAAU,GAAG;EAC3B,MAAM;IAAEC;
|
|
1
|
+
{"version":3,"names":["useOmnipay","initiateBills","initiateWallet","useContext","OmnipayContext"],"sourceRoot":"../../src","sources":["useOmnipay.tsx"],"mappings":";;;;;;AAAA;AACA;AAKO,SAASA,UAAU,GAAG;EAC3B,MAAM;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAG,IAAAC,iBAAU,EAClDC,+BAAc,CACO;EACvB,OAAO;IACLH,aAAa;IACbC;EACF,CAAC;AACH"}
|
|
@@ -3,7 +3,8 @@ import { ActivityIndicator, Linking, Platform, StyleSheet, View, Modal, ScrollVi
|
|
|
3
3
|
import WebView from 'react-native-webview';
|
|
4
4
|
import { getContact } from '../functions';
|
|
5
5
|
let defaultValue = {
|
|
6
|
-
initiateBills: () => null
|
|
6
|
+
initiateBills: () => null,
|
|
7
|
+
initiateWallet: () => null
|
|
7
8
|
};
|
|
8
9
|
export const OmnipayContext = /*#__PURE__*/React.createContext(defaultValue);
|
|
9
10
|
export const OmnipayProvider = _ref => {
|
|
@@ -99,6 +100,26 @@ export const OmnipayProvider = _ref => {
|
|
|
99
100
|
}
|
|
100
101
|
console.warn('Omnipay error: Invalid phone number');
|
|
101
102
|
};
|
|
103
|
+
const _initiateWallet = _ref3 => {
|
|
104
|
+
let {
|
|
105
|
+
phoneNumber,
|
|
106
|
+
onClose,
|
|
107
|
+
usesPaylater = false,
|
|
108
|
+
usesPromo = false,
|
|
109
|
+
usesAirtimeData = false,
|
|
110
|
+
usesTransfer = false,
|
|
111
|
+
usesBills = false,
|
|
112
|
+
usesPos = false
|
|
113
|
+
} = _ref3;
|
|
114
|
+
if (typeof phoneNumber === 'string' && phoneNumber.length === 11) {
|
|
115
|
+
const webUrl = `${webHost}?theme=${color}&view=wallet&publicKey=${publicKey}&phoneNumber=${phoneNumber}&usesPaylater=${usesPaylater}&usesPromo=${usesPromo}&usesAirtimeData=${usesAirtimeData}&usesTransfer=${usesTransfer}&usesBills=${usesBills}&usesPos=${usesPos}`;
|
|
116
|
+
setWebviewUrl(webUrl);
|
|
117
|
+
setIsVisible(true);
|
|
118
|
+
onCloseRef.current = onClose;
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
console.warn('Omnipay error: Invalid phone number');
|
|
122
|
+
};
|
|
102
123
|
function closeWebview() {
|
|
103
124
|
setIsVisible(false);
|
|
104
125
|
if (onCloseRef.current && typeof onCloseRef.current === 'function') {
|
|
@@ -108,9 +129,11 @@ export const OmnipayProvider = _ref => {
|
|
|
108
129
|
}
|
|
109
130
|
const webviewStyle = getWebviewStyle();
|
|
110
131
|
const isPropsValid = isValidColor && !!publicKey && isValidEnv;
|
|
132
|
+
const isWalletView = webviewUrl.includes('view=wallet');
|
|
111
133
|
return /*#__PURE__*/React.createElement(OmnipayContext.Provider, {
|
|
112
134
|
value: {
|
|
113
|
-
initiateBills: _initiateBills
|
|
135
|
+
initiateBills: _initiateBills,
|
|
136
|
+
initiateWallet: _initiateWallet
|
|
114
137
|
}
|
|
115
138
|
}, isPropsValid && /*#__PURE__*/React.createElement(React.Fragment, null, webviewUrl.includes('view') && /*#__PURE__*/React.createElement(Modal, {
|
|
116
139
|
visible: showWebview,
|
|
@@ -122,9 +145,9 @@ export const OmnipayProvider = _ref => {
|
|
|
122
145
|
onPress: closeWebview
|
|
123
146
|
}, /*#__PURE__*/React.createElement(View, {
|
|
124
147
|
style: [styles.container, {
|
|
125
|
-
paddingTop: containerOffset
|
|
148
|
+
paddingTop: isWalletView ? 0 : containerOffset
|
|
126
149
|
}]
|
|
127
|
-
}, containerOffset !== 0 && webviewStatus === 'success' && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
150
|
+
}, containerOffset !== 0 && webviewStatus === 'success' && !isWalletView && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
128
151
|
style: styles.close,
|
|
129
152
|
onPress: closeWebview
|
|
130
153
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
@@ -163,8 +186,10 @@ const styles = StyleSheet.create({
|
|
|
163
186
|
webview: {
|
|
164
187
|
flex: 1,
|
|
165
188
|
width: '100%',
|
|
166
|
-
height: Dimensions.get('window').height -
|
|
167
|
-
backgroundColor: 'white'
|
|
189
|
+
height: Dimensions.get('window').height - 70,
|
|
190
|
+
backgroundColor: 'white',
|
|
191
|
+
borderTopRightRadius: 20,
|
|
192
|
+
borderTopLeftRadius: 20
|
|
168
193
|
},
|
|
169
194
|
webviewLoader: {
|
|
170
195
|
zIndex: 3,
|
|
@@ -176,7 +201,9 @@ const styles = StyleSheet.create({
|
|
|
176
201
|
height: '100%',
|
|
177
202
|
position: 'absolute',
|
|
178
203
|
top: 0,
|
|
179
|
-
left: 0
|
|
204
|
+
left: 0,
|
|
205
|
+
borderTopRightRadius: 20,
|
|
206
|
+
borderTopLeftRadius: 20
|
|
180
207
|
},
|
|
181
208
|
backdrop: {
|
|
182
209
|
backgroundColor: 'rgba(0,0,0,0.48)',
|
|
@@ -189,7 +216,7 @@ const styles = StyleSheet.create({
|
|
|
189
216
|
backgroundColor: 'white',
|
|
190
217
|
borderTopRightRadius: 20,
|
|
191
218
|
borderTopLeftRadius: 20,
|
|
192
|
-
maxHeight: Dimensions.get('window').height -
|
|
219
|
+
maxHeight: Dimensions.get('window').height - 70,
|
|
193
220
|
flex: 1,
|
|
194
221
|
position: 'relative'
|
|
195
222
|
},
|
|
@@ -217,8 +244,10 @@ const styles = StyleSheet.create({
|
|
|
217
244
|
},
|
|
218
245
|
contentContainer: {
|
|
219
246
|
flex: 1,
|
|
220
|
-
height: Dimensions.get('window').height -
|
|
221
|
-
position: 'relative'
|
|
247
|
+
height: Dimensions.get('window').height - 70,
|
|
248
|
+
position: 'relative',
|
|
249
|
+
borderTopRightRadius: 20,
|
|
250
|
+
borderTopLeftRadius: 20
|
|
222
251
|
}
|
|
223
252
|
});
|
|
224
253
|
//# sourceMappingURL=OmnipayProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","ActivityIndicator","Linking","Platform","StyleSheet","View","Modal","ScrollView","Dimensions","TouchableOpacity","Image","TouchableWithoutFeedback","WebView","getContact","defaultValue","initiateBills","OmnipayContext","createContext","OmnipayProvider","children","publicKey","env","color","webviewStatus","setWebviewStatus","isVisible","setIsVisible","webviewRef","webHost","getWebHost","webviewUrl","setWebviewUrl","showWebview","includes","containerOffset","setContainerOffset","isValidEnv","isValidColor","length","onCloseRef","undefined","getWebviewStyle","opacity","height","width","flex","styles","webview","onWebviewMount","OS","postMessage","data","current","JSON","stringify","error","onWebviewMessage","e","nativeEvent","eventData","parse","dataKey","dataValue","contactDetails","openURL","closeWebview","_initiateBills","phoneNumber","onClose","webUrl","console","warn","webviewStyle","isPropsValid","modal","backdrop","container","paddingTop","close","require","closeIcon","contentContainer","uri","webviewLoader","create","hide","display","full","get","backgroundColor","zIndex","alignItems","justifyContent","position","top","left","
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","ActivityIndicator","Linking","Platform","StyleSheet","View","Modal","ScrollView","Dimensions","TouchableOpacity","Image","TouchableWithoutFeedback","WebView","getContact","defaultValue","initiateBills","initiateWallet","OmnipayContext","createContext","OmnipayProvider","children","publicKey","env","color","webviewStatus","setWebviewStatus","isVisible","setIsVisible","webviewRef","webHost","getWebHost","webviewUrl","setWebviewUrl","showWebview","includes","containerOffset","setContainerOffset","isValidEnv","isValidColor","length","onCloseRef","undefined","getWebviewStyle","opacity","height","width","flex","styles","webview","onWebviewMount","OS","postMessage","data","current","JSON","stringify","error","onWebviewMessage","e","nativeEvent","eventData","parse","dataKey","dataValue","contactDetails","openURL","closeWebview","_initiateBills","phoneNumber","onClose","webUrl","console","warn","_initiateWallet","usesPaylater","usesPromo","usesAirtimeData","usesTransfer","usesBills","usesPos","webviewStyle","isPropsValid","isWalletView","modal","backdrop","container","paddingTop","close","require","closeIcon","contentContainer","uri","webviewLoader","create","hide","display","full","get","backgroundColor","borderTopRightRadius","borderTopLeftRadius","zIndex","alignItems","justifyContent","position","top","left","maxHeight","right","borderRadius"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@ import { useContext } from 'react';
|
|
|
2
2
|
import { OmnipayContext } from '../components/OmnipayProvider';
|
|
3
3
|
export function useOmnipay() {
|
|
4
4
|
const {
|
|
5
|
-
initiateBills
|
|
5
|
+
initiateBills,
|
|
6
|
+
initiateWallet
|
|
6
7
|
} = useContext(OmnipayContext);
|
|
7
8
|
return {
|
|
8
|
-
initiateBills
|
|
9
|
+
initiateBills,
|
|
10
|
+
initiateWallet
|
|
9
11
|
};
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=useOmnipay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","OmnipayContext","useOmnipay","initiateBills"],"sourceRoot":"../../src","sources":["useOmnipay.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SACEC,cAAc,QAET,+BAA+B;AAEtC,OAAO,SAASC,UAAU,GAAG;EAC3B,MAAM;IAAEC;
|
|
1
|
+
{"version":3,"names":["useContext","OmnipayContext","useOmnipay","initiateBills","initiateWallet"],"sourceRoot":"../../src","sources":["useOmnipay.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SACEC,cAAc,QAET,+BAA+B;AAEtC,OAAO,SAASC,UAAU,GAAG;EAC3B,MAAM;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGJ,UAAU,CAClDC,cAAc,CACO;EACvB,OAAO;IACLE,aAAa;IACbC;EACF,CAAC;AACH"}
|
|
@@ -9,8 +9,19 @@ declare type InitiateBillsType = {
|
|
|
9
9
|
phoneNumber: string;
|
|
10
10
|
onClose?: () => void;
|
|
11
11
|
};
|
|
12
|
+
declare type InitiateWalletType = {
|
|
13
|
+
phoneNumber: string;
|
|
14
|
+
usesPaylater?: boolean;
|
|
15
|
+
usesPromo?: boolean;
|
|
16
|
+
usesAirtimeData?: boolean;
|
|
17
|
+
usesTransfer?: boolean;
|
|
18
|
+
usesBills?: boolean;
|
|
19
|
+
usesPos?: boolean;
|
|
20
|
+
onClose?: () => void;
|
|
21
|
+
};
|
|
12
22
|
export declare type OmnipayContextType = {
|
|
13
23
|
initiateBills: ({ phoneNumber, onClose }: InitiateBillsType) => void;
|
|
24
|
+
initiateWallet: ({ phoneNumber, onClose, usesPaylater, usesPromo, usesAirtimeData, usesTransfer, usesBills, usesPos, }: InitiateWalletType) => void;
|
|
14
25
|
};
|
|
15
26
|
export declare const OmnipayContext: React.Context<OmnipayContextType | null>;
|
|
16
27
|
export declare const OmnipayProvider: ({ children, publicKey, env, color, }: OmnipayProviderProps) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OmnipayProvider.d.ts","sourceRoot":"","sources":["../../../src/components/OmnipayProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAiBhD,aAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;CACrD,CAAC;AAQF,aAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"OmnipayProvider.d.ts","sourceRoot":"","sources":["../../../src/components/OmnipayProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAiBhD,aAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;CACrD,CAAC;AAQF,aAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,aAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrE,cAAc,EAAE,CAAC,EACf,WAAW,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,SAAS,EACT,OAAO,GACR,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAChC,CAAC;AAOF,eAAO,MAAM,cAAc,0CAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,yCAKzB,oBAAoB,gBAoLtB,CAAC"}
|
|
@@ -3,5 +3,15 @@ export declare function useOmnipay(): {
|
|
|
3
3
|
phoneNumber: string;
|
|
4
4
|
onClose?: (() => void) | undefined;
|
|
5
5
|
}) => void;
|
|
6
|
+
initiateWallet: ({ phoneNumber, onClose, usesPaylater, usesPromo, usesAirtimeData, usesTransfer, usesBills, usesPos, }: {
|
|
7
|
+
phoneNumber: string;
|
|
8
|
+
usesPaylater?: boolean | undefined;
|
|
9
|
+
usesPromo?: boolean | undefined;
|
|
10
|
+
usesAirtimeData?: boolean | undefined;
|
|
11
|
+
usesTransfer?: boolean | undefined;
|
|
12
|
+
usesBills?: boolean | undefined;
|
|
13
|
+
usesPos?: boolean | undefined;
|
|
14
|
+
onClose?: (() => void) | undefined;
|
|
15
|
+
}) => void;
|
|
6
16
|
};
|
|
7
17
|
//# sourceMappingURL=useOmnipay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOmnipay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOmnipay.tsx"],"names":[],"mappings":"AAMA,wBAAgB,UAAU
|
|
1
|
+
{"version":3,"file":"useOmnipay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOmnipay.tsx"],"names":[],"mappings":"AAMA,wBAAgB,UAAU;;;;;;;;;;;;;;;EAQzB"}
|
package/package.json
CHANGED
|
@@ -33,12 +33,34 @@ type InitiateBillsType = {
|
|
|
33
33
|
onClose?: () => void;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
+
type InitiateWalletType = {
|
|
37
|
+
phoneNumber: string;
|
|
38
|
+
usesPaylater?: boolean;
|
|
39
|
+
usesPromo?: boolean;
|
|
40
|
+
usesAirtimeData?: boolean;
|
|
41
|
+
usesTransfer?: boolean;
|
|
42
|
+
usesBills?: boolean;
|
|
43
|
+
usesPos?: boolean;
|
|
44
|
+
onClose?: () => void;
|
|
45
|
+
};
|
|
46
|
+
|
|
36
47
|
export type OmnipayContextType = {
|
|
37
48
|
initiateBills: ({ phoneNumber, onClose }: InitiateBillsType) => void;
|
|
49
|
+
initiateWallet: ({
|
|
50
|
+
phoneNumber,
|
|
51
|
+
onClose,
|
|
52
|
+
usesPaylater,
|
|
53
|
+
usesPromo,
|
|
54
|
+
usesAirtimeData,
|
|
55
|
+
usesTransfer,
|
|
56
|
+
usesBills,
|
|
57
|
+
usesPos,
|
|
58
|
+
}: InitiateWalletType) => void;
|
|
38
59
|
};
|
|
39
60
|
|
|
40
61
|
let defaultValue = {
|
|
41
62
|
initiateBills: () => null,
|
|
63
|
+
initiateWallet: () => null,
|
|
42
64
|
};
|
|
43
65
|
|
|
44
66
|
export const OmnipayContext = React.createContext<OmnipayContextType | null>(
|
|
@@ -133,6 +155,26 @@ export const OmnipayProvider = ({
|
|
|
133
155
|
console.warn('Omnipay error: Invalid phone number');
|
|
134
156
|
};
|
|
135
157
|
|
|
158
|
+
const _initiateWallet = ({
|
|
159
|
+
phoneNumber,
|
|
160
|
+
onClose,
|
|
161
|
+
usesPaylater = false,
|
|
162
|
+
usesPromo = false,
|
|
163
|
+
usesAirtimeData = false,
|
|
164
|
+
usesTransfer = false,
|
|
165
|
+
usesBills = false,
|
|
166
|
+
usesPos = false,
|
|
167
|
+
}: InitiateWalletType) => {
|
|
168
|
+
if (typeof phoneNumber === 'string' && phoneNumber.length === 11) {
|
|
169
|
+
const webUrl = `${webHost}?theme=${color}&view=wallet&publicKey=${publicKey}&phoneNumber=${phoneNumber}&usesPaylater=${usesPaylater}&usesPromo=${usesPromo}&usesAirtimeData=${usesAirtimeData}&usesTransfer=${usesTransfer}&usesBills=${usesBills}&usesPos=${usesPos}`;
|
|
170
|
+
setWebviewUrl(webUrl);
|
|
171
|
+
setIsVisible(true);
|
|
172
|
+
onCloseRef.current = onClose;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
console.warn('Omnipay error: Invalid phone number');
|
|
176
|
+
};
|
|
177
|
+
|
|
136
178
|
function closeWebview() {
|
|
137
179
|
setIsVisible(false);
|
|
138
180
|
if (onCloseRef.current && typeof onCloseRef.current === 'function') {
|
|
@@ -143,9 +185,12 @@ export const OmnipayProvider = ({
|
|
|
143
185
|
|
|
144
186
|
const webviewStyle = getWebviewStyle();
|
|
145
187
|
const isPropsValid = isValidColor && !!publicKey && isValidEnv;
|
|
188
|
+
const isWalletView = webviewUrl.includes('view=wallet');
|
|
146
189
|
|
|
147
190
|
return (
|
|
148
|
-
<OmnipayContext.Provider
|
|
191
|
+
<OmnipayContext.Provider
|
|
192
|
+
value={{ initiateBills: _initiateBills, initiateWallet: _initiateWallet }}
|
|
193
|
+
>
|
|
149
194
|
{isPropsValid && (
|
|
150
195
|
<>
|
|
151
196
|
{webviewUrl.includes('view') && (
|
|
@@ -156,19 +201,24 @@ export const OmnipayProvider = ({
|
|
|
156
201
|
onPress={closeWebview}
|
|
157
202
|
>
|
|
158
203
|
<View
|
|
159
|
-
style={[
|
|
204
|
+
style={[
|
|
205
|
+
styles.container,
|
|
206
|
+
{ paddingTop: isWalletView ? 0 : containerOffset },
|
|
207
|
+
]}
|
|
160
208
|
>
|
|
161
|
-
{containerOffset !== 0 &&
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
209
|
+
{containerOffset !== 0 &&
|
|
210
|
+
webviewStatus === 'success' &&
|
|
211
|
+
!isWalletView && (
|
|
212
|
+
<TouchableOpacity
|
|
213
|
+
style={styles.close}
|
|
214
|
+
onPress={closeWebview}
|
|
215
|
+
>
|
|
216
|
+
<Image
|
|
217
|
+
source={require('../assets/cancel.png')}
|
|
218
|
+
style={styles.closeIcon}
|
|
219
|
+
/>
|
|
220
|
+
</TouchableOpacity>
|
|
221
|
+
)}
|
|
172
222
|
<ScrollView contentContainerStyle={styles.contentContainer}>
|
|
173
223
|
<TouchableWithoutFeedback>
|
|
174
224
|
<WebView
|
|
@@ -216,8 +266,10 @@ const styles = StyleSheet.create({
|
|
|
216
266
|
webview: {
|
|
217
267
|
flex: 1,
|
|
218
268
|
width: '100%',
|
|
219
|
-
height: Dimensions.get('window').height -
|
|
269
|
+
height: Dimensions.get('window').height - 70,
|
|
220
270
|
backgroundColor: 'white',
|
|
271
|
+
borderTopRightRadius: 20,
|
|
272
|
+
borderTopLeftRadius: 20,
|
|
221
273
|
},
|
|
222
274
|
webviewLoader: {
|
|
223
275
|
zIndex: 3,
|
|
@@ -230,6 +282,8 @@ const styles = StyleSheet.create({
|
|
|
230
282
|
position: 'absolute',
|
|
231
283
|
top: 0,
|
|
232
284
|
left: 0,
|
|
285
|
+
borderTopRightRadius: 20,
|
|
286
|
+
borderTopLeftRadius: 20,
|
|
233
287
|
},
|
|
234
288
|
backdrop: {
|
|
235
289
|
backgroundColor: 'rgba(0,0,0,0.48)',
|
|
@@ -242,7 +296,7 @@ const styles = StyleSheet.create({
|
|
|
242
296
|
backgroundColor: 'white',
|
|
243
297
|
borderTopRightRadius: 20,
|
|
244
298
|
borderTopLeftRadius: 20,
|
|
245
|
-
maxHeight: Dimensions.get('window').height -
|
|
299
|
+
maxHeight: Dimensions.get('window').height - 70,
|
|
246
300
|
flex: 1,
|
|
247
301
|
position: 'relative',
|
|
248
302
|
},
|
|
@@ -270,7 +324,9 @@ const styles = StyleSheet.create({
|
|
|
270
324
|
},
|
|
271
325
|
contentContainer: {
|
|
272
326
|
flex: 1,
|
|
273
|
-
height: Dimensions.get('window').height -
|
|
327
|
+
height: Dimensions.get('window').height - 70,
|
|
274
328
|
position: 'relative',
|
|
329
|
+
borderTopRightRadius: 20,
|
|
330
|
+
borderTopLeftRadius: 20,
|
|
275
331
|
},
|
|
276
332
|
});
|
package/src/hooks/useOmnipay.tsx
CHANGED
|
@@ -5,8 +5,11 @@ import {
|
|
|
5
5
|
} from '../components/OmnipayProvider';
|
|
6
6
|
|
|
7
7
|
export function useOmnipay() {
|
|
8
|
-
const { initiateBills } = useContext(
|
|
8
|
+
const { initiateBills, initiateWallet } = useContext(
|
|
9
|
+
OmnipayContext
|
|
10
|
+
) as OmnipayContextType;
|
|
9
11
|
return {
|
|
10
12
|
initiateBills,
|
|
13
|
+
initiateWallet,
|
|
11
14
|
};
|
|
12
15
|
}
|