omnipay-reactnative-sdk 0.3.9 → 0.4.2

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 CHANGED
@@ -80,7 +80,11 @@ import { OmnipayProvider, useOmnipay } from 'omnipay-reactnative-sdk';
80
80
  // import useOmnipay hook in the component you need to show the bills sdk in
81
81
  const { initiateBills } = useOmnipay();
82
82
 
83
- initiateBills({ phoneNumber: '08020001111' });
83
+ function onBillsClosed() {
84
+ console.log('sdk is closed..you can do some stuff');
85
+ }
86
+
87
+ initiateBills({ phoneNumber: '08020001111', onClose: onBillsClosed });
84
88
  ```
85
89
 
86
90
  ### Properties
@@ -94,3 +98,4 @@ initiateBills({ phoneNumber: '08020001111' });
94
98
  | view | String | the view to render. it accepts only bills |
95
99
  | onEnterFullScreen | Function | the sdk uses a webview to render the content and might not neccesarily fill up the whole screen. This will be called whenever the sdk needs to show a modal. Other ui elements can be hidden at this point so the modal of the sdk can take up the full width and height of the screen |
96
100
  | onExitFullScreen | Function | this is when the hidden elements can be made visible again as the sdk is no longer displaying a modal |
101
+ | onClose | Function | this is used to notify you when the sdk closes |
@@ -32,6 +32,7 @@ const OmnipayProvider = _ref => {
32
32
  const [containerOffset, setContainerOffset] = (0, _react.useState)(30);
33
33
  const isValidEnv = ['prod', 'dev'].includes(env);
34
34
  const isValidColor = color.length > 2;
35
+ const onCloseRef = (0, _react.useRef)(undefined);
35
36
  function getWebviewStyle() {
36
37
  if (!showWebview) {
37
38
  return {
@@ -90,16 +91,25 @@ const OmnipayProvider = _ref => {
90
91
  }
91
92
  const _initiateBills = _ref2 => {
92
93
  let {
93
- phoneNumber
94
+ phoneNumber,
95
+ onClose
94
96
  } = _ref2;
95
97
  if (typeof phoneNumber === 'string' && phoneNumber.length === 11) {
96
98
  const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
97
99
  setWebviewUrl(webUrl);
98
100
  setIsVisible(true);
101
+ onCloseRef.current = onClose;
99
102
  return;
100
103
  }
101
104
  console.warn('Omnipay error: Invalid phone number');
102
105
  };
106
+ function closeWebview() {
107
+ setIsVisible(false);
108
+ if (onCloseRef.current && typeof onCloseRef.current === 'function') {
109
+ onCloseRef.current();
110
+ onCloseRef.current = undefined;
111
+ }
112
+ }
103
113
  const webviewStyle = getWebviewStyle();
104
114
  const isPropsValid = isValidColor && !!publicKey && isValidEnv;
105
115
  return /*#__PURE__*/_react.default.createElement(OmnipayContext.Provider, {
@@ -108,7 +118,8 @@ const OmnipayProvider = _ref => {
108
118
  }
109
119
  }, isPropsValid && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, webviewUrl.includes('view') && /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
110
120
  visible: showWebview,
111
- style: styles.modal
121
+ style: styles.modal,
122
+ transparent: true
112
123
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
113
124
  style: styles.backdrop
114
125
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
@@ -117,7 +128,7 @@ const OmnipayProvider = _ref => {
117
128
  }]
118
129
  }, containerOffset !== 0 && webviewStatus === 'success' && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
119
130
  style: styles.close,
120
- onPress: () => setIsVisible(false)
131
+ onPress: closeWebview
121
132
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
122
133
  source: require('../assets/cancel.png'),
123
134
  style: styles.closeIcon
@@ -171,7 +182,7 @@ const styles = _reactNative.StyleSheet.create({
171
182
  left: 0
172
183
  },
173
184
  backdrop: {
174
- backgroundColor: 'rgba(0,0,0, 0.48)',
185
+ backgroundColor: 'rgba(0,0,0,0.48)',
175
186
  flex: 1,
176
187
  justifyContent: 'flex-end',
177
188
  position: 'relative',
@@ -187,7 +198,7 @@ const styles = _reactNative.StyleSheet.create({
187
198
  },
188
199
  modal: {
189
200
  flex: 1,
190
- backgroundColor: 'white',
201
+ backgroundColor: 'rgba(0,0,0,0.48)',
191
202
  height: '100%',
192
203
  width: '100%'
193
204
  },
@@ -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","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","_initiateBills","phoneNumber","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","borderTopRightRadius","borderTopLeftRadius","maxHeight","right","borderRadius"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
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","_initiateBills","phoneNumber","onClose","webUrl","console","warn","closeWebview","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","borderTopRightRadius","borderTopLeftRadius","maxHeight","right","borderRadius"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
@@ -22,6 +22,7 @@ export const OmnipayProvider = _ref => {
22
22
  const [containerOffset, setContainerOffset] = useState(30);
23
23
  const isValidEnv = ['prod', 'dev'].includes(env);
24
24
  const isValidColor = color.length > 2;
25
+ const onCloseRef = useRef(undefined);
25
26
  function getWebviewStyle() {
26
27
  if (!showWebview) {
27
28
  return {
@@ -80,16 +81,25 @@ export const OmnipayProvider = _ref => {
80
81
  }
81
82
  const _initiateBills = _ref2 => {
82
83
  let {
83
- phoneNumber
84
+ phoneNumber,
85
+ onClose
84
86
  } = _ref2;
85
87
  if (typeof phoneNumber === 'string' && phoneNumber.length === 11) {
86
88
  const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
87
89
  setWebviewUrl(webUrl);
88
90
  setIsVisible(true);
91
+ onCloseRef.current = onClose;
89
92
  return;
90
93
  }
91
94
  console.warn('Omnipay error: Invalid phone number');
92
95
  };
96
+ function closeWebview() {
97
+ setIsVisible(false);
98
+ if (onCloseRef.current && typeof onCloseRef.current === 'function') {
99
+ onCloseRef.current();
100
+ onCloseRef.current = undefined;
101
+ }
102
+ }
93
103
  const webviewStyle = getWebviewStyle();
94
104
  const isPropsValid = isValidColor && !!publicKey && isValidEnv;
95
105
  return /*#__PURE__*/React.createElement(OmnipayContext.Provider, {
@@ -98,7 +108,8 @@ export const OmnipayProvider = _ref => {
98
108
  }
99
109
  }, isPropsValid && /*#__PURE__*/React.createElement(React.Fragment, null, webviewUrl.includes('view') && /*#__PURE__*/React.createElement(Modal, {
100
110
  visible: showWebview,
101
- style: styles.modal
111
+ style: styles.modal,
112
+ transparent: true
102
113
  }, /*#__PURE__*/React.createElement(View, {
103
114
  style: styles.backdrop
104
115
  }, /*#__PURE__*/React.createElement(View, {
@@ -107,7 +118,7 @@ export const OmnipayProvider = _ref => {
107
118
  }]
108
119
  }, containerOffset !== 0 && webviewStatus === 'success' && /*#__PURE__*/React.createElement(TouchableOpacity, {
109
120
  style: styles.close,
110
- onPress: () => setIsVisible(false)
121
+ onPress: closeWebview
111
122
  }, /*#__PURE__*/React.createElement(Image, {
112
123
  source: require('../assets/cancel.png'),
113
124
  style: styles.closeIcon
@@ -160,7 +171,7 @@ const styles = StyleSheet.create({
160
171
  left: 0
161
172
  },
162
173
  backdrop: {
163
- backgroundColor: 'rgba(0,0,0, 0.48)',
174
+ backgroundColor: 'rgba(0,0,0,0.48)',
164
175
  flex: 1,
165
176
  justifyContent: 'flex-end',
166
177
  position: 'relative',
@@ -176,7 +187,7 @@ const styles = StyleSheet.create({
176
187
  },
177
188
  modal: {
178
189
  flex: 1,
179
- backgroundColor: 'white',
190
+ backgroundColor: 'rgba(0,0,0,0.48)',
180
191
  height: '100%',
181
192
  width: '100%'
182
193
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useState","ActivityIndicator","Linking","Platform","StyleSheet","View","Modal","ScrollView","Dimensions","TouchableOpacity","Image","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","getWebviewStyle","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","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","borderTopRightRadius","borderTopLeftRadius","maxHeight","right","borderRadius"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useRef","useState","ActivityIndicator","Linking","Platform","StyleSheet","View","Modal","ScrollView","Dimensions","TouchableOpacity","Image","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","_initiateBills","phoneNumber","onClose","webUrl","console","warn","closeWebview","webviewStyle","isPropsValid","modal","backdrop","container","paddingTop","close","require","closeIcon","contentContainer","uri","webviewLoader","create","hide","display","full","get","backgroundColor","zIndex","alignItems","justifyContent","position","top","left","borderTopRightRadius","borderTopLeftRadius","maxHeight","right","borderRadius"],"sourceRoot":"../../src","sources":["OmnipayProvider.tsx"],"mappings":"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"}
@@ -7,9 +7,10 @@ declare type OmnipayProviderProps = {
7
7
  };
8
8
  declare type InitiateBillsType = {
9
9
  phoneNumber: string;
10
+ onClose?: () => void;
10
11
  };
11
12
  export declare type OmnipayContextType = {
12
- initiateBills: ({ phoneNumber }: InitiateBillsType) => void;
13
+ initiateBills: ({ phoneNumber, onClose }: InitiateBillsType) => void;
13
14
  };
14
15
  export declare const OmnipayContext: React.Context<OmnipayContextType | null>;
15
16
  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;AAgBhD,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;CACrB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7D,CAAC;AAMF,eAAO,MAAM,cAAc,0CAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,yCAKzB,oBAAoB,gBAgItB,CAAC"}
1
+ {"version":3,"file":"OmnipayProvider.d.ts","sourceRoot":"","sources":["../../../src/components/OmnipayProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAgBhD,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;CACtE,CAAC;AAMF,eAAO,MAAM,cAAc,0CAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,yCAKzB,oBAAoB,gBA0ItB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export declare function useOmnipay(): {
2
- initiateBills: ({ phoneNumber }: {
2
+ initiateBills: ({ phoneNumber, onClose }: {
3
3
  phoneNumber: string;
4
+ onClose?: (() => void) | undefined;
4
5
  }) => void;
5
6
  };
6
7
  //# 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;;;;EAKzB"}
1
+ {"version":3,"file":"useOmnipay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOmnipay.tsx"],"names":[],"mappings":"AAMA,wBAAgB,UAAU;;;;;EAKzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnipay-reactnative-sdk",
3
- "version": "0.3.9",
3
+ "version": "0.4.2",
4
4
  "description": "Omnipay react native sdk",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -29,10 +29,11 @@ type Status = 'error' | 'loading' | 'success';
29
29
 
30
30
  type InitiateBillsType = {
31
31
  phoneNumber: string;
32
+ onClose?: () => void;
32
33
  };
33
34
 
34
35
  export type OmnipayContextType = {
35
- initiateBills: ({ phoneNumber }: InitiateBillsType) => void;
36
+ initiateBills: ({ phoneNumber, onClose }: InitiateBillsType) => void;
36
37
  };
37
38
 
38
39
  let defaultValue = {
@@ -58,6 +59,7 @@ export const OmnipayProvider = ({
58
59
  const [containerOffset, setContainerOffset] = useState(30);
59
60
  const isValidEnv = ['prod', 'dev'].includes(env);
60
61
  const isValidColor = color.length > 2;
62
+ const onCloseRef = useRef<(() => void) | undefined>(undefined);
61
63
 
62
64
  function getWebviewStyle() {
63
65
  if (!showWebview) {
@@ -113,16 +115,25 @@ export const OmnipayProvider = ({
113
115
  } catch (error) {}
114
116
  }
115
117
 
116
- const _initiateBills = ({ phoneNumber }: InitiateBillsType) => {
118
+ const _initiateBills = ({ phoneNumber, onClose }: InitiateBillsType) => {
117
119
  if (typeof phoneNumber === 'string' && phoneNumber.length === 11) {
118
120
  const webUrl = `${webHost}?theme=${color}&view=bills&publicKey=${publicKey}&phoneNumber=${phoneNumber}`;
119
121
  setWebviewUrl(webUrl);
120
122
  setIsVisible(true);
123
+ onCloseRef.current = onClose;
121
124
  return;
122
125
  }
123
126
  console.warn('Omnipay error: Invalid phone number');
124
127
  };
125
128
 
129
+ function closeWebview() {
130
+ setIsVisible(false);
131
+ if (onCloseRef.current && typeof onCloseRef.current === 'function') {
132
+ onCloseRef.current();
133
+ onCloseRef.current = undefined;
134
+ }
135
+ }
136
+
126
137
  const webviewStyle = getWebviewStyle();
127
138
  const isPropsValid = isValidColor && !!publicKey && isValidEnv;
128
139
 
@@ -131,7 +142,7 @@ export const OmnipayProvider = ({
131
142
  {isPropsValid && (
132
143
  <>
133
144
  {webviewUrl.includes('view') && (
134
- <Modal visible={showWebview} style={styles.modal}>
145
+ <Modal visible={showWebview} style={styles.modal} transparent>
135
146
  <View style={styles.backdrop}>
136
147
  <View
137
148
  style={[styles.container, { paddingTop: containerOffset }]}
@@ -139,7 +150,7 @@ export const OmnipayProvider = ({
139
150
  {containerOffset !== 0 && webviewStatus === 'success' && (
140
151
  <TouchableOpacity
141
152
  style={styles.close}
142
- onPress={() => setIsVisible(false)}
153
+ onPress={closeWebview}
143
154
  >
144
155
  <Image
145
156
  source={require('../assets/cancel.png')}
@@ -206,7 +217,7 @@ const styles = StyleSheet.create({
206
217
  left: 0,
207
218
  },
208
219
  backdrop: {
209
- backgroundColor: 'rgba(0,0,0, 0.48)',
220
+ backgroundColor: 'rgba(0,0,0,0.48)',
210
221
  flex: 1,
211
222
  justifyContent: 'flex-end',
212
223
  position: 'relative',
@@ -222,7 +233,7 @@ const styles = StyleSheet.create({
222
233
  },
223
234
  modal: {
224
235
  flex: 1,
225
- backgroundColor: 'white',
236
+ backgroundColor: 'rgba(0,0,0,0.48)',
226
237
  height: '100%',
227
238
  width: '100%',
228
239
  },