react-native-okhi 1.2.31 → 1.2.32-beta.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.
Files changed (151) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +34 -4
  3. package/ReactNativeOkhi.podspec +21 -0
  4. package/android/build.gradle +38 -99
  5. package/android/gradle.properties +3 -3
  6. package/android/src/main/AndroidManifest.xml +1 -3
  7. package/android/src/main/java/com/okhi/OkhiModule.kt +336 -0
  8. package/android/src/main/java/com/okhi/OkhiPackage.kt +33 -0
  9. package/ios/OkHiWrapper.swift +348 -0
  10. package/ios/Okhi.h +5 -0
  11. package/ios/Okhi.mm +170 -0
  12. package/lib/commonjs/NativeOkhi.js +9 -0
  13. package/lib/commonjs/NativeOkhi.js.map +1 -0
  14. package/lib/commonjs/index.js +234 -28
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/package.json +1 -0
  17. package/lib/commonjs/types.js.map +1 -0
  18. package/lib/module/NativeOkhi.js +5 -0
  19. package/lib/module/NativeOkhi.js.map +1 -0
  20. package/lib/module/index.js +221 -3
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/package.json +1 -0
  23. package/lib/module/types.js +2 -0
  24. package/lib/module/types.js.map +1 -0
  25. package/lib/typescript/commonjs/package.json +1 -0
  26. package/lib/typescript/commonjs/src/NativeOkhi.d.ts +25 -0
  27. package/lib/typescript/commonjs/src/NativeOkhi.d.ts.map +1 -0
  28. package/lib/typescript/commonjs/src/index.d.ts +22 -0
  29. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  30. package/lib/typescript/commonjs/src/types.d.ts +81 -0
  31. package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
  32. package/lib/typescript/module/package.json +1 -0
  33. package/lib/typescript/module/src/NativeOkhi.d.ts +25 -0
  34. package/lib/typescript/module/src/NativeOkhi.d.ts.map +1 -0
  35. package/lib/typescript/module/src/index.d.ts +22 -0
  36. package/lib/typescript/module/src/index.d.ts.map +1 -0
  37. package/lib/typescript/module/src/types.d.ts +81 -0
  38. package/lib/typescript/module/src/types.d.ts.map +1 -0
  39. package/package.json +91 -112
  40. package/src/NativeOkhi.ts +68 -0
  41. package/src/index.tsx +271 -3
  42. package/src/types.ts +90 -0
  43. package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +0 -389
  44. package/android/src/main/java/com/reactnativeokhi/OkhiPackage.java +0 -28
  45. package/ios/OkHiExtension.swift +0 -27
  46. package/ios/OkHiStruct.swift +0 -29
  47. package/ios/Okhi-Bridging-Header.h +0 -3
  48. package/ios/Okhi.m +0 -62
  49. package/ios/Okhi.swift +0 -325
  50. package/ios/Okhi.xcodeproj/project.pbxproj +0 -283
  51. package/lib/commonjs/OkCollect/Helpers.js +0 -40
  52. package/lib/commonjs/OkCollect/Helpers.js.map +0 -1
  53. package/lib/commonjs/OkCollect/OkHiLocationManager.js +0 -305
  54. package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +0 -1
  55. package/lib/commonjs/OkCollect/Spinner.js +0 -27
  56. package/lib/commonjs/OkCollect/Spinner.js.map +0 -1
  57. package/lib/commonjs/OkCollect/Util.js +0 -226
  58. package/lib/commonjs/OkCollect/Util.js.map +0 -1
  59. package/lib/commonjs/OkCollect/app.json +0 -4
  60. package/lib/commonjs/OkCollect/index.js +0 -47
  61. package/lib/commonjs/OkCollect/index.js.map +0 -1
  62. package/lib/commonjs/OkCollect/types.js +0 -6
  63. package/lib/commonjs/OkCollect/types.js.map +0 -1
  64. package/lib/commonjs/OkCore/Helpers.js +0 -386
  65. package/lib/commonjs/OkCore/Helpers.js.map +0 -1
  66. package/lib/commonjs/OkCore/OkHiException.js +0 -96
  67. package/lib/commonjs/OkCore/OkHiException.js.map +0 -1
  68. package/lib/commonjs/OkCore/OkHiMode.js +0 -14
  69. package/lib/commonjs/OkCore/OkHiMode.js.map +0 -1
  70. package/lib/commonjs/OkCore/_helpers.js +0 -41
  71. package/lib/commonjs/OkCore/_helpers.js.map +0 -1
  72. package/lib/commonjs/OkCore/_types.js +0 -2
  73. package/lib/commonjs/OkCore/_types.js.map +0 -1
  74. package/lib/commonjs/OkCore/index.js +0 -119
  75. package/lib/commonjs/OkCore/index.js.map +0 -1
  76. package/lib/commonjs/OkCore/types.js +0 -6
  77. package/lib/commonjs/OkCore/types.js.map +0 -1
  78. package/lib/commonjs/OkHiNativeModule/index.js +0 -19
  79. package/lib/commonjs/OkHiNativeModule/index.js.map +0 -1
  80. package/lib/commonjs/OkVerify/index.js +0 -211
  81. package/lib/commonjs/OkVerify/index.js.map +0 -1
  82. package/lib/commonjs/OkVerify/types.js.map +0 -1
  83. package/lib/module/OkCollect/Helpers.js +0 -34
  84. package/lib/module/OkCollect/Helpers.js.map +0 -1
  85. package/lib/module/OkCollect/OkHiLocationManager.js +0 -298
  86. package/lib/module/OkCollect/OkHiLocationManager.js.map +0 -1
  87. package/lib/module/OkCollect/Spinner.js +0 -20
  88. package/lib/module/OkCollect/Spinner.js.map +0 -1
  89. package/lib/module/OkCollect/Util.js +0 -214
  90. package/lib/module/OkCollect/Util.js.map +0 -1
  91. package/lib/module/OkCollect/app.json +0 -4
  92. package/lib/module/OkCollect/index.js +0 -4
  93. package/lib/module/OkCollect/index.js.map +0 -1
  94. package/lib/module/OkCollect/types.js +0 -2
  95. package/lib/module/OkCollect/types.js.map +0 -1
  96. package/lib/module/OkCore/Helpers.js +0 -363
  97. package/lib/module/OkCore/Helpers.js.map +0 -1
  98. package/lib/module/OkCore/OkHiException.js +0 -89
  99. package/lib/module/OkCore/OkHiException.js.map +0 -1
  100. package/lib/module/OkCore/OkHiMode.js +0 -8
  101. package/lib/module/OkCore/OkHiMode.js.map +0 -1
  102. package/lib/module/OkCore/_helpers.js +0 -34
  103. package/lib/module/OkCore/_helpers.js.map +0 -1
  104. package/lib/module/OkCore/_types.js +0 -2
  105. package/lib/module/OkCore/_types.js.map +0 -1
  106. package/lib/module/OkCore/index.js +0 -65
  107. package/lib/module/OkCore/index.js.map +0 -1
  108. package/lib/module/OkCore/types.js +0 -2
  109. package/lib/module/OkCore/types.js.map +0 -1
  110. package/lib/module/OkHiNativeModule/index.js +0 -13
  111. package/lib/module/OkHiNativeModule/index.js.map +0 -1
  112. package/lib/module/OkVerify/index.js +0 -195
  113. package/lib/module/OkVerify/index.js.map +0 -1
  114. package/lib/module/OkVerify/types.js +0 -2
  115. package/lib/module/OkVerify/types.js.map +0 -1
  116. package/lib/typescript/OkCollect/Helpers.d.ts +0 -9
  117. package/lib/typescript/OkCollect/OkHiLocationManager.d.ts +0 -7
  118. package/lib/typescript/OkCollect/Spinner.d.ts +0 -5
  119. package/lib/typescript/OkCollect/Util.d.ts +0 -31
  120. package/lib/typescript/OkCollect/index.d.ts +0 -3
  121. package/lib/typescript/OkCollect/types.d.ts +0 -139
  122. package/lib/typescript/OkCore/Helpers.d.ts +0 -95
  123. package/lib/typescript/OkCore/OkHiException.d.ts +0 -81
  124. package/lib/typescript/OkCore/OkHiMode.d.ts +0 -7
  125. package/lib/typescript/OkCore/_helpers.d.ts +0 -3
  126. package/lib/typescript/OkCore/_types.d.ts +0 -38
  127. package/lib/typescript/OkCore/index.d.ts +0 -17
  128. package/lib/typescript/OkCore/types.d.ts +0 -203
  129. package/lib/typescript/OkHiNativeModule/index.d.ts +0 -48
  130. package/lib/typescript/OkVerify/index.d.ts +0 -65
  131. package/lib/typescript/OkVerify/types.d.ts +0 -0
  132. package/lib/typescript/index.d.ts +0 -3
  133. package/react-native-okhi.podspec +0 -35
  134. package/src/OkCollect/Helpers.ts +0 -53
  135. package/src/OkCollect/OkHiLocationManager.tsx +0 -391
  136. package/src/OkCollect/Spinner.tsx +0 -18
  137. package/src/OkCollect/Util.ts +0 -270
  138. package/src/OkCollect/app.json +0 -4
  139. package/src/OkCollect/index.ts +0 -3
  140. package/src/OkCollect/types.ts +0 -154
  141. package/src/OkCore/Helpers.ts +0 -477
  142. package/src/OkCore/OkHiException.ts +0 -93
  143. package/src/OkCore/OkHiMode.ts +0 -7
  144. package/src/OkCore/_helpers.ts +0 -47
  145. package/src/OkCore/_types.ts +0 -37
  146. package/src/OkCore/index.ts +0 -87
  147. package/src/OkCore/types.ts +0 -235
  148. package/src/OkHiNativeModule/index.ts +0 -92
  149. package/src/OkVerify/index.ts +0 -259
  150. package/src/OkVerify/types.ts +0 -0
  151. /package/lib/commonjs/{OkVerify/types.js → types.js} +0 -0
@@ -1,305 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.OkHiLocationManager = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- var _reactNativeWebview = require("react-native-webview");
10
- var _Spinner = require("./Spinner");
11
- var _Util = require("./Util");
12
- var _OkHiException = require("../OkCore/OkHiException");
13
- var _OkVerify = require("../OkVerify");
14
- var _OkCore = require("../OkCore");
15
- var _OkHiNativeModule = require("../OkHiNativeModule");
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
- /**
18
- * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.
19
- */
20
- const OkHiLocationManager = props => {
21
- const [applicationConfiguration, setApplicationConfiguration] = (0, _react.useState)(null);
22
- const [startPayload, setStartPaylaod] = (0, _react.useState)(null);
23
- const defaultStyle = {
24
- flex: 1
25
- };
26
- const style = props.style ? {
27
- ...props.style,
28
- ...defaultStyle
29
- } : defaultStyle;
30
- const {
31
- user,
32
- onSuccess,
33
- onCloseRequest,
34
- onError,
35
- loader,
36
- launch
37
- } = props;
38
- const webViewRef = (0, _react.useRef)(null);
39
- const startMessage = props.mode === 'create' ? 'start_app' : 'select_location';
40
- const [ready, setReady] = (0, _react.useState)(false);
41
- const androidAlwaysRequested = (0, _react.useRef)(false);
42
- (0, _react.useEffect)(() => {
43
- if (typeof launch === 'boolean') {
44
- setReady(launch);
45
- }
46
- }, [launch]);
47
- (0, _react.useEffect)(() => {
48
- async function startOkHiLocationManager() {
49
- const appConfiguration = await (0, _OkCore.getApplicationConfiguration)();
50
- if (!appConfiguration) {
51
- throw new _OkHiException.OkHiException({
52
- code: _OkHiException.OkHiException.UNAUTHORIZED_CODE,
53
- message: _OkHiException.OkHiException.UNAUTHORIZED_MESSAGE
54
- });
55
- }
56
- const startPayload = await (0, _Util.generateStartDataPayload)(props, appConfiguration);
57
- setApplicationConfiguration(appConfiguration);
58
- setStartPaylaod(startPayload);
59
- if (_reactNative.Platform.OS === 'android' && _reactNative.Platform.Version > 25) {
60
- _OkHiNativeModule.OkHiNativeModule.setItem('okcollect-launch-payload', JSON.stringify({
61
- message: startMessage,
62
- payload: startPayload,
63
- url: (0, _Util.getFrameUrl)(appConfiguration)
64
- })).catch(console.error);
65
- }
66
- }
67
- if (launch) {
68
- startOkHiLocationManager();
69
- }
70
- }, [launch, props, onError]);
71
- const runWebViewCallback = async result => {
72
- var _webViewRef$current;
73
- const level = await _OkHiNativeModule.OkHiNativeModule.getLocationAccuracyLevel();
74
- let callbackResult = result;
75
- if ((result === 'blocked' || result === 'denied') && level === 'approximate') {
76
- callbackResult = 'whenInUse';
77
- }
78
- const update = {
79
- locationAccuracyLevel: level
80
- };
81
- const jsonUpdate = JSON.stringify(update).replace(/\\/g, '\\\\').replace(/"/g, '\\"');
82
- const jsString = `
83
- (function (){
84
- if (typeof runOkHiLocationManagerCallback === "function") {
85
- runOkHiLocationManagerCallback("${callbackResult}", "${jsonUpdate}")
86
- }
87
- })()
88
- `;
89
- (_webViewRef$current = webViewRef.current) === null || _webViewRef$current === void 0 || _webViewRef$current.injectJavaScript(jsString);
90
- };
91
- const handleAndroidRequestLocationPermission = async level => {
92
- try {
93
- const _isLocationPermissionGranted = await (0, _OkCore.isLocationPermissionGranted)();
94
- const _isBackgroundLocationPermissionGranted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
95
- const _locationAccuracyLevel = await _OkHiNativeModule.OkHiNativeModule.getLocationAccuracyLevel();
96
- if (_isBackgroundLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
97
- runWebViewCallback('always');
98
- } else if (level === 'whenInUse' && _isLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
99
- runWebViewCallback('whenInUse');
100
- } else if (level === 'whenInUse' && _locationAccuracyLevel === 'no_permission') {
101
- const result = await (0, _OkCore.requestLocationPermission)();
102
- runWebViewCallback(result ? 'whenInUse' : 'denied');
103
- } else if (level === 'always') {
104
- const result = await (0, _OkCore.requestBackgroundLocationPermission)();
105
- runWebViewCallback(result ? 'always' : 'denied');
106
- androidAlwaysRequested.current = true;
107
- } else if (level === 'whenInUse' && _locationAccuracyLevel === 'approximate') {
108
- const result = await (0, _OkCore.requestLocationPermission)();
109
- runWebViewCallback(result ? 'whenInUse' : 'denied');
110
- } else {
111
- (0, _OkCore.openAppSettings)();
112
- }
113
- } catch (error) {
114
- onError(new _OkHiException.OkHiException({
115
- code: 'unknown',
116
- message: 'could not request permission'
117
- }));
118
- }
119
- };
120
- const handleIOSRequestLocationPermission = async level => {
121
- try {
122
- const _isLocationPermissionGranted = await (0, _OkCore.isLocationPermissionGranted)();
123
- const _isBackgroundLocationPermissionGranted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
124
- const _locationAccuracyLevel = await _OkHiNativeModule.OkHiNativeModule.getLocationAccuracyLevel();
125
- if (_isBackgroundLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
126
- runWebViewCallback('always');
127
- } else if (level === 'whenInUse' && _isLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
128
- runWebViewCallback('whenInUse');
129
- } else if (level === 'whenInUse' && !_isLocationPermissionGranted) {
130
- const result = await (0, _OkCore.requestLocationPermission)();
131
- runWebViewCallback(result ? 'whenInUse' : 'denied');
132
- } else {
133
- (0, _OkCore.openAppSettings)();
134
- }
135
- } catch (error) {
136
- onError(new _OkHiException.OkHiException({
137
- code: 'unknown',
138
- message: 'could not request permission'
139
- }));
140
- }
141
- };
142
- const handleRequestLocationPermission = async ({
143
- level
144
- }) => {
145
- if (_reactNative.Platform.OS === 'android') {
146
- handleAndroidRequestLocationPermission(level);
147
- } else if (_reactNative.Platform.OS === 'ios') {
148
- handleIOSRequestLocationPermission(level);
149
- }
150
- };
151
- const handleOpenAppSettings = async () => {
152
- try {
153
- const granted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
154
- if (granted) {
155
- runWebViewCallback('always');
156
- } else {
157
- await (0, _OkCore.openAppSettings)();
158
- }
159
- } catch (error) {
160
- const err = error;
161
- onError(err);
162
- }
163
- };
164
- const handleFetchCurrentLocation = async () => {
165
- try {
166
- const location = await (0, _Util.fetchCurrentLocation)();
167
- if (location) {
168
- var _webViewRef$current2;
169
- const jsString = `window.receiveCurrentLocation({lat: ${location.lat},lng: ${location.lng},accuracy: ${location.accuracy}})`;
170
- (_webViewRef$current2 = webViewRef.current) === null || _webViewRef$current2 === void 0 || _webViewRef$current2.injectJavaScript(jsString);
171
- }
172
- } catch (error) {
173
- console.error(error);
174
- }
175
- };
176
-
177
- // prevents ios https... is requesting for your location
178
- const handleWebViewOnLoad = () => {
179
- if (_reactNative.Platform.OS === 'ios') {
180
- var _webViewRef$current3;
181
- const jsString = '(function(){navigator.geolocation.watchPosition=navigator.geolocation.getCurrentPosition=function(s,e,o){if(window.ReactNativeWebView&&typeof window.ReactNativeWebView.postMessage==="function"){window.ReactNativeWebView.postMessage(JSON.stringify({message:"fetch_current_location",payload:{}}));}window.receiveCurrentLocation=function(l){s({coords:{latitude:l.lat,longitude:l.lng,accuracy:l.accuracy,altitude:null,altitudeAccuracy:null,heading:null,speed:null},timestamp:Date.now()});};};})();';
182
- (_webViewRef$current3 = webViewRef.current) === null || _webViewRef$current3 === void 0 || _webViewRef$current3.injectJavaScript(jsString);
183
- }
184
- };
185
- const handleOnMessage = ({
186
- nativeEvent: {
187
- data
188
- }
189
- }) => {
190
- try {
191
- const response = JSON.parse(data);
192
- if (response.message === 'fatal_exit') {
193
- //TODO: figure out bad phone number code
194
- onError(new _OkHiException.OkHiException({
195
- code: _OkHiException.OkHiException.UNKNOWN_ERROR_CODE,
196
- message: response.payload
197
- }));
198
- } else if (response.message === 'exit_app') {
199
- onCloseRequest();
200
- } else if (response.message === 'request_enable_protected_apps') {
201
- (0, _OkCore.openProtectedAppsSettings)();
202
- } else if (response.message === 'location_created' || response.message === 'location_selected' || response.message === 'location_updated') {
203
- setReady(false); // auto close
204
- onSuccess({
205
- user: {
206
- ...response.payload.user,
207
- fcmPushNotificationToken: user.fcmPushNotificationToken
208
- },
209
- location: (0, _Util.parseOkHiLocation)(response.payload.location),
210
- startVerification: function () {
211
- const createdUser = {
212
- ...this.user
213
- };
214
- const location = {
215
- ...this.location
216
- };
217
- return new Promise((resolve, reject) => {
218
- if (!location.id) {
219
- reject(new _OkHiException.OkHiException({
220
- code: _OkHiException.OkHiException.BAD_REQUEST_CODE,
221
- message: 'Missing location id from response'
222
- }));
223
- } else if (!createdUser.id) {
224
- reject(new _OkHiException.OkHiException({
225
- code: _OkHiException.OkHiException.BAD_REQUEST_CODE,
226
- message: 'Missing user id from response'
227
- }));
228
- } else if (!createdUser.token) {
229
- reject(new _OkHiException.OkHiException({
230
- code: _OkHiException.OkHiException.UNAUTHORIZED_CODE,
231
- message: _OkHiException.OkHiException.UNAUTHORIZED_MESSAGE
232
- }));
233
- } else {
234
- const usageTypes = Array.isArray(location.usageTypes) ? location.usageTypes : ['digital_verification'];
235
- (0, _OkVerify.start)(createdUser.token, createdUser.phone, createdUser.id, location.id, location.lat, location.lon, usageTypes).then(resolve).catch(reject);
236
- }
237
- });
238
- }
239
- });
240
- } else if (response.message === 'request_location_permission') {
241
- handleRequestLocationPermission(response.payload);
242
- } else if (response.message === 'open_app_settings') {
243
- handleOpenAppSettings();
244
- } else if (response.message === 'fetch_current_location') {
245
- handleFetchCurrentLocation();
246
- }
247
- } catch (error) {
248
- let errorMessage = 'Something went wrong';
249
- if (error instanceof Error) {
250
- errorMessage = error.message;
251
- }
252
- onError(new _OkHiException.OkHiException({
253
- code: _OkHiException.OkHiException.UNKNOWN_ERROR_CODE,
254
- message: errorMessage
255
- }));
256
- }
257
- };
258
- const handleOnError = () => {
259
- onError(new _OkHiException.OkHiException({
260
- code: _OkHiException.OkHiException.NETWORK_ERROR_CODE,
261
- message: _OkHiException.OkHiException.NETWORK_ERROR_MESSAGE
262
- }));
263
- };
264
- const handleModalRequestClose = () => {
265
- var _webViewRef$current4;
266
- (_webViewRef$current4 = webViewRef.current) === null || _webViewRef$current4 === void 0 || _webViewRef$current4.goBack();
267
- };
268
- const renderContent = () => {
269
- if (startPayload === null || applicationConfiguration == null) {
270
- return loader || /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, null);
271
- }
272
- const {
273
- jsAfterLoad,
274
- jsBeforeLoad
275
- } = (0, _Util.generateJavaScriptStartScript)({
276
- message: startMessage,
277
- payload: startPayload
278
- });
279
- return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
280
- style: style
281
- }, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.WebView, {
282
- source: {
283
- uri: (0, _Util.getFrameUrl)(applicationConfiguration)
284
- },
285
- injectedJavaScriptBeforeContentLoaded: _reactNative.Platform.OS === 'ios' ? jsBeforeLoad : undefined,
286
- injectedJavaScript: _reactNative.Platform.OS === 'ios' ? undefined : jsAfterLoad,
287
- onMessage: handleOnMessage,
288
- onError: handleOnError,
289
- onHttpError: handleOnError,
290
- geolocationEnabled: true,
291
- allowsBackForwardNavigationGestures: true,
292
- onLoad: handleWebViewOnLoad,
293
- ref: webViewRef
294
- }));
295
- };
296
- return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
297
- animationType: "slide",
298
- transparent: false,
299
- visible: ready,
300
- onRequestClose: handleModalRequestClose
301
- }, ready ? renderContent() : null);
302
- };
303
- exports.OkHiLocationManager = OkHiLocationManager;
304
- var _default = exports.default = OkHiLocationManager;
305
- //# sourceMappingURL=OkHiLocationManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkVerify","_OkCore","_OkHiNativeModule","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","useState","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","startMessage","mode","ready","setReady","androidAlwaysRequested","useEffect","startOkHiLocationManager","appConfiguration","getApplicationConfiguration","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","catch","console","error","runWebViewCallback","result","_webViewRef$current","level","getLocationAccuracyLevel","callbackResult","update","locationAccuracyLevel","jsonUpdate","replace","jsString","current","injectJavaScript","handleAndroidRequestLocationPermission","_isLocationPermissionGranted","isLocationPermissionGranted","_isBackgroundLocationPermissionGranted","isBackgroundLocationPermissionGranted","_locationAccuracyLevel","requestLocationPermission","requestBackgroundLocationPermission","openAppSettings","handleIOSRequestLocationPermission","handleRequestLocationPermission","handleOpenAppSettings","granted","err","handleFetchCurrentLocation","location","fetchCurrentLocation","_webViewRef$current2","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current3","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","openProtectedAppsSettings","fcmPushNotificationToken","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","sv","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current4","goBack","renderContent","createElement","Spinner","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","SafeAreaView","WebView","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","Modal","animationType","transparent","visible","onRequestClose","exports","_default"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n fetchCurrentLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport {\n getApplicationConfiguration,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n openAppSettings,\n openProtectedAppsSettings,\n requestBackgroundLocationPermission,\n requestLocationPermission,\n UsageType,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n const startMessage =\n props.mode === 'create' ? 'start_app' : 'select_location';\n const [ready, setReady] = useState(false);\n const androidAlwaysRequested = useRef(false);\n\n useEffect(() => {\n if (typeof launch === 'boolean') {\n setReady(launch);\n }\n }, [launch]);\n\n useEffect(() => {\n async function startOkHiLocationManager() {\n const appConfiguration = await getApplicationConfiguration();\n if (!appConfiguration) {\n throw new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n const startPayload = await generateStartDataPayload(\n props,\n appConfiguration\n );\n setApplicationConfiguration(appConfiguration);\n setStartPaylaod(startPayload);\n if (Platform.OS === 'android' && Platform.Version > 25) {\n OkHiNativeModule.setItem(\n 'okcollect-launch-payload',\n JSON.stringify({\n message: startMessage,\n payload: startPayload,\n url: getFrameUrl(appConfiguration),\n })\n ).catch(console.error);\n }\n }\n\n if (launch) {\n startOkHiLocationManager();\n }\n }, [launch, props, onError]);\n\n const runWebViewCallback = async (result: string) => {\n const level = await OkHiNativeModule.getLocationAccuracyLevel();\n let callbackResult = result;\n if (\n (result === 'blocked' || result === 'denied') &&\n level === 'approximate'\n ) {\n callbackResult = 'whenInUse';\n }\n const update = { locationAccuracyLevel: level };\n const jsonUpdate = JSON.stringify(update)\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"');\n const jsString = `\n (function (){\n if (typeof runOkHiLocationManagerCallback === \"function\") {\n runOkHiLocationManagerCallback(\"${callbackResult}\", \"${jsonUpdate}\")\n }\n })()\n `;\n webViewRef.current?.injectJavaScript(jsString);\n };\n\n const handleAndroidRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n try {\n const _isLocationPermissionGranted = await isLocationPermissionGranted();\n const _isBackgroundLocationPermissionGranted =\n await isBackgroundLocationPermissionGranted();\n const _locationAccuracyLevel =\n await OkHiNativeModule.getLocationAccuracyLevel();\n if (\n _isBackgroundLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('always');\n } else if (\n level === 'whenInUse' &&\n _isLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('whenInUse');\n } else if (\n level === 'whenInUse' &&\n _locationAccuracyLevel === 'no_permission'\n ) {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else if (level === 'always') {\n const result = await requestBackgroundLocationPermission();\n runWebViewCallback(result ? 'always' : 'denied');\n androidAlwaysRequested.current = true;\n } else if (\n level === 'whenInUse' &&\n _locationAccuracyLevel === 'approximate'\n ) {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else {\n openAppSettings();\n }\n } catch (error) {\n onError(\n new OkHiException({\n code: 'unknown',\n message: 'could not request permission',\n })\n );\n }\n };\n\n const handleIOSRequestLocationPermission = async (level: string) => {\n try {\n const _isLocationPermissionGranted = await isLocationPermissionGranted();\n const _isBackgroundLocationPermissionGranted =\n await isBackgroundLocationPermissionGranted();\n const _locationAccuracyLevel =\n await OkHiNativeModule.getLocationAccuracyLevel();\n\n if (\n _isBackgroundLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('always');\n } else if (\n level === 'whenInUse' &&\n _isLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('whenInUse');\n } else if (level === 'whenInUse' && !_isLocationPermissionGranted) {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else {\n openAppSettings();\n }\n } catch (error) {\n onError(\n new OkHiException({\n code: 'unknown',\n message: 'could not request permission',\n })\n );\n }\n };\n\n const handleRequestLocationPermission = async ({\n level,\n }: {\n level: 'whenInUse' | 'always';\n }) => {\n if (Platform.OS === 'android') {\n handleAndroidRequestLocationPermission(level);\n } else if (Platform.OS === 'ios') {\n handleIOSRequestLocationPermission(level);\n }\n };\n\n const handleOpenAppSettings = async () => {\n try {\n const granted = await isBackgroundLocationPermissionGranted();\n if (granted) {\n runWebViewCallback('always');\n } else {\n await openAppSettings();\n }\n } catch (error) {\n const err = error as OkHiException;\n onError(err);\n }\n };\n\n const handleFetchCurrentLocation = async () => {\n try {\n const location = await fetchCurrentLocation();\n if (location) {\n const jsString = `window.receiveCurrentLocation({lat: ${location.lat},lng: ${location.lng},accuracy: ${location.accuracy}})`;\n webViewRef.current?.injectJavaScript(jsString);\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n // prevents ios https... is requesting for your location\n const handleWebViewOnLoad = () => {\n if (Platform.OS === 'ios') {\n const jsString =\n '(function(){navigator.geolocation.watchPosition=navigator.geolocation.getCurrentPosition=function(s,e,o){if(window.ReactNativeWebView&&typeof window.ReactNativeWebView.postMessage===\"function\"){window.ReactNativeWebView.postMessage(JSON.stringify({message:\"fetch_current_location\",payload:{}}));}window.receiveCurrentLocation=function(l){s({coords:{latitude:l.lat,longitude:l.lng,accuracy:l.accuracy,altitude:null,altitudeAccuracy:null,heading:null,speed:null},timestamp:Date.now()});};};})();';\n webViewRef.current?.injectJavaScript(jsString);\n }\n };\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n //TODO: figure out bad phone number code\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload,\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else if (\n response.message === 'location_created' ||\n response.message === 'location_selected' ||\n response.message === 'location_updated'\n ) {\n setReady(false); // auto close\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function () {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else if (!createdUser.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing user id from response',\n })\n );\n } else if (!createdUser.token) {\n reject(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else {\n const usageTypes: UsageType = Array.isArray(location.usageTypes)\n ? location.usageTypes\n : ['digital_verification'];\n sv(\n createdUser.token,\n createdUser.phone,\n createdUser.id,\n location.id,\n location.lat,\n location.lon,\n usageTypes\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n } else if (response.message === 'request_location_permission') {\n handleRequestLocationPermission(response.payload);\n } else if (response.message === 'open_app_settings') {\n handleOpenAppSettings();\n } else if (response.message === 'fetch_current_location') {\n handleFetchCurrentLocation();\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (startPayload === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: startMessage,\n payload: startPayload,\n });\n\n return (\n <SafeAreaView style={style}>\n <WebView\n source={{ uri: getFrameUrl(applicationConfiguration) }}\n injectedJavaScriptBeforeContentLoaded={\n Platform.OS === 'ios' ? jsBeforeLoad : undefined\n }\n injectedJavaScript={Platform.OS === 'ios' ? undefined : jsAfterLoad}\n onMessage={handleOnMessage}\n onError={handleOnError}\n onHttpError={handleOnError}\n geolocationEnabled={true}\n allowsBackForwardNavigationGestures={true}\n onLoad={handleWebViewOnLoad}\n ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={ready}\n onRequestClose={handleModalRequestClose}\n >\n {ready ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Spinner = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNative = require("react-native");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /**
11
- * Default spinner component that'll be used as the initial loading indicator.
12
- */
13
- const Spinner = () => {
14
- const style = {
15
- flex: 1,
16
- alignItems: 'center',
17
- justifyContent: 'center'
18
- };
19
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
20
- style: style
21
- }, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
22
- color: "teal",
23
- size: "small"
24
- }));
25
- };
26
- exports.Spinner = Spinner;
27
- //# sourceMappingURL=Spinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","Spinner","style","flex","alignItems","justifyContent","createElement","View","ActivityIndicator","color","size","exports"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport { ActivityIndicator, View, ViewStyle } from 'react-native';\n\n/**\n * Default spinner component that'll be used as the initial loading indicator.\n */\nexport const Spinner = () => {\n const style: ViewStyle = {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n };\n return (\n <View style={style}>\n <ActivityIndicator color=\"teal\" size=\"small\" />\n </View>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAkE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElE;AACA;AACA;AACO,MAAMG,OAAO,GAAGA,CAAA,KAAM;EAC3B,MAAMC,KAAgB,GAAG;IACvBC,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD,oBACEX,MAAA,CAAAM,OAAA,CAAAM,aAAA,CAACT,YAAA,CAAAU,IAAI;IAACL,KAAK,EAAEA;EAAM,gBACjBR,MAAA,CAAAM,OAAA,CAAAM,aAAA,CAACT,YAAA,CAAAW,iBAAiB;IAACC,KAAK,EAAC,MAAM;IAACC,IAAI,EAAC;EAAO,CAAE,CAC1C,CAAC;AAEX,CAAC;AAACC,OAAA,CAAAV,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -1,226 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parseOkHiLocation = exports.getFrameUrl = exports.generateStartDataPayload = exports.generateJavaScriptStartScript = exports.fetchCurrentLocation = void 0;
7
- var _OkCore = require("../OkCore");
8
- var _app = _interopRequireDefault(require("./app.json"));
9
- var _reactNative = require("react-native");
10
- var _OkHiNativeModule = require("../OkHiNativeModule");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- //TODO: fix this
13
-
14
- const fetchCurrentLocation = async () => {
15
- const result = await _OkHiNativeModule.OkHiNativeModule.fetchCurrentLocation();
16
- return result;
17
- };
18
-
19
- /**
20
- * @ignore
21
- */
22
- exports.fetchCurrentLocation = fetchCurrentLocation;
23
- const generateStartDataPayload = async (props, applicationConfiguration) => {
24
- var _props$theme, _props$theme2, _applicationConfigura, _applicationConfigura2, _applicationConfigura3, _props$config, _props$theme3, _props$config2, _props$config3, _props$config4, _props$config5, _props$config6, _props$config7, _props$location;
25
- const payload = {};
26
- const {
27
- manufacturer,
28
- model,
29
- osVersion,
30
- platform
31
- } = await _OkHiNativeModule.OkHiNativeModule.retrieveDeviceInfo();
32
- const geofences = await _OkHiNativeModule.OkHiNativeModule.fetchRegisteredGeofences();
33
- const locationAccuracyLevel = await _OkHiNativeModule.OkHiNativeModule.getLocationAccuracyLevel();
34
- if (geofences) {
35
- payload.locations = JSON.parse(geofences);
36
- }
37
- payload.style = !props.theme ? undefined : {
38
- base: {
39
- color: (_props$theme = props.theme) === null || _props$theme === void 0 || (_props$theme = _props$theme.colors) === null || _props$theme === void 0 ? void 0 : _props$theme.primary,
40
- logo: (_props$theme2 = props.theme) === null || _props$theme2 === void 0 || (_props$theme2 = _props$theme2.appBar) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.logo,
41
- name: (_applicationConfigura = applicationConfiguration.app) === null || _applicationConfigura === void 0 ? void 0 : _applicationConfigura.name
42
- }
43
- };
44
- payload.user = {
45
- phone: props.user.phone,
46
- firstName: props.user.firstName,
47
- lastName: props.user.lastName,
48
- email: props.user.email,
49
- appUserId: props.user.appUserId
50
- };
51
- payload.auth = {
52
- branchId: applicationConfiguration.credentials.branchId,
53
- clientKey: applicationConfiguration.credentials.clientKey
54
- };
55
- payload.context = {
56
- container: {
57
- name: (_applicationConfigura2 = applicationConfiguration.app) === null || _applicationConfigura2 === void 0 ? void 0 : _applicationConfigura2.name,
58
- version: (_applicationConfigura3 = applicationConfiguration.app) === null || _applicationConfigura3 === void 0 ? void 0 : _applicationConfigura3.version
59
- },
60
- developer: {
61
- name: applicationConfiguration.context.developer
62
- },
63
- library: {
64
- name: _app.default.name,
65
- version: _app.default.version
66
- },
67
- platform: {
68
- name: 'react-native'
69
- },
70
- device: {
71
- manufacturer,
72
- model,
73
- platform,
74
- osVersion
75
- },
76
- locationAccuracyLevel
77
- };
78
- payload.config = {
79
- streetView: typeof ((_props$config = props.config) === null || _props$config === void 0 ? void 0 : _props$config.streetView) === 'boolean' ? props.config.streetView : true,
80
- appBar: {
81
- color: (_props$theme3 = props.theme) === null || _props$theme3 === void 0 || (_props$theme3 = _props$theme3.appBar) === null || _props$theme3 === void 0 ? void 0 : _props$theme3.backgroundColor,
82
- visible: (_props$config2 = props.config) === null || _props$config2 === void 0 || (_props$config2 = _props$config2.appBar) === null || _props$config2 === void 0 ? void 0 : _props$config2.visible
83
- },
84
- addressTypes: {
85
- home: typeof ((_props$config3 = props.config) === null || _props$config3 === void 0 || (_props$config3 = _props$config3.addressTypes) === null || _props$config3 === void 0 ? void 0 : _props$config3.home) === 'boolean' ? (_props$config4 = props.config) === null || _props$config4 === void 0 || (_props$config4 = _props$config4.addressTypes) === null || _props$config4 === void 0 ? void 0 : _props$config4.home : true,
86
- work: typeof ((_props$config5 = props.config) === null || _props$config5 === void 0 || (_props$config5 = _props$config5.addressTypes) === null || _props$config5 === void 0 ? void 0 : _props$config5.work) === 'boolean' ? (_props$config6 = props.config) === null || _props$config6 === void 0 || (_props$config6 = _props$config6.addressTypes) === null || _props$config6 === void 0 ? void 0 : _props$config6.work : true
87
- },
88
- protectedApps: _reactNative.Platform.OS === 'android' && (await (0, _OkCore.canOpenProtectedAppsSettings)()),
89
- permissionsOnboarding: true,
90
- usageTypes: ((_props$config7 = props.config) === null || _props$config7 === void 0 ? void 0 : _props$config7.usageTypes) || ['digital_verification']
91
- };
92
- if (_reactNative.Platform.OS === 'ios') {
93
- const status = await _OkHiNativeModule.OkHiNativeModule.fetchIOSLocationPermissionStatus();
94
- const locationPermission = status === 'notDetermined' ? 'notDetermined' : status === 'authorizedWhenInUse' ? 'whenInUse' : status === 'authorizedAlways' ? 'always' : 'denied';
95
- payload.context.permissions = {
96
- location: locationPermission
97
- };
98
- if (status === 'authorized' || status === 'authorizedWhenInUse' || status === 'authorizedAlways') {
99
- const location = await fetchCurrentLocation();
100
- if (location) {
101
- payload.context.coordinates = {
102
- currentLocation: {
103
- lat: location.lat,
104
- lng: location.lng,
105
- accuracy: location.accuracy
106
- }
107
- };
108
- }
109
- }
110
- } else if (_reactNative.Platform.OS === 'android') {
111
- let hasLocationPermission;
112
- try {
113
- hasLocationPermission = await (0, _OkCore.isLocationPermissionGranted)();
114
- } catch (error) {
115
- console.log(error);
116
- }
117
- let hasBackgroundLocationPermission;
118
- try {
119
- hasBackgroundLocationPermission = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
120
- } catch (error) {
121
- console.log(error);
122
- }
123
- if (typeof hasLocationPermission === 'boolean' && typeof hasBackgroundLocationPermission === 'boolean') {
124
- payload.context.permissions = {
125
- location: hasBackgroundLocationPermission ? 'always' : hasLocationPermission ? 'whenInUse' : 'denied'
126
- };
127
- }
128
- } else {
129
- throw new _OkCore.OkHiException({
130
- code: _OkCore.OkHiException.UNSUPPORTED_PLATFORM_CODE,
131
- message: _OkCore.OkHiException.UNAUTHORIZED_MESSAGE
132
- });
133
- }
134
- if ((_props$location = props.location) !== null && _props$location !== void 0 && _props$location.id) {
135
- payload.location = {
136
- id: props.location.id
137
- };
138
- }
139
- return payload;
140
- };
141
-
142
- /**
143
- * @ignore
144
- */
145
- exports.generateStartDataPayload = generateStartDataPayload;
146
- const getFrameUrl = applicationConfiguration => {
147
- const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';
148
- const PROD_FRAME_URL = 'https://manager-v5.okhi.io';
149
- const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';
150
- const LEGACY_DEV_FRAME_URL = 'https://dev-legacy-manager-v5.okhi.io';
151
- const LEGACY_PROD_FRAME_URL = 'https://legacy-manager-v5.okhi.io';
152
- const LEGACY_SANDBOX_FRAME_URL = 'https://sandbox-legacy-manager-v5.okhi.io';
153
- if (_reactNative.Platform.OS === 'android' && _reactNative.Platform.Version < 24) {
154
- if (applicationConfiguration.context.mode === _OkCore.OkHiMode.PROD) {
155
- return LEGACY_PROD_FRAME_URL;
156
- }
157
- if (applicationConfiguration.context.mode === 'dev') {
158
- return LEGACY_DEV_FRAME_URL;
159
- }
160
- return LEGACY_SANDBOX_FRAME_URL;
161
- }
162
- if (applicationConfiguration.context.mode === _OkCore.OkHiMode.PROD) {
163
- return PROD_FRAME_URL;
164
- }
165
- if (applicationConfiguration.context.mode === 'dev') {
166
- return DEV_FRAME_URL;
167
- }
168
- return SANDBOX_FRAME_URL;
169
- };
170
-
171
- /**
172
- * @ignore
173
- */
174
- exports.getFrameUrl = getFrameUrl;
175
- const generateJavaScriptStartScript = startPayload => {
176
- const jsBeforeLoad = `
177
- window.isNativeApp = true;
178
- window.NativeApp = {
179
- bridge: {
180
- receiveMessage: window.ReactNativeWebView.postMessage
181
- },
182
- data: ${JSON.stringify(startPayload)}
183
- }
184
- true;
185
- `;
186
- const jsAfterLoad = `window.startOkHiLocationManager({ receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } }, ${JSON.stringify(startPayload)})`;
187
- return {
188
- jsBeforeLoad,
189
- jsAfterLoad
190
- };
191
- };
192
-
193
- /**
194
- * @ignore
195
- */
196
- exports.generateJavaScriptStartScript = generateJavaScriptStartScript;
197
- const parseOkHiLocation = location => {
198
- var _location$geo_point, _location$geo_point2, _location$street_view, _location$street_view2;
199
- return {
200
- id: location === null || location === void 0 ? void 0 : location.id,
201
- lat: location === null || location === void 0 || (_location$geo_point = location.geo_point) === null || _location$geo_point === void 0 ? void 0 : _location$geo_point.lat,
202
- lon: location === null || location === void 0 || (_location$geo_point2 = location.geo_point) === null || _location$geo_point2 === void 0 ? void 0 : _location$geo_point2.lon,
203
- placeId: location === null || location === void 0 ? void 0 : location.place_id,
204
- plusCode: location === null || location === void 0 ? void 0 : location.plus_code,
205
- propertyName: location === null || location === void 0 ? void 0 : location.property_name,
206
- streetName: location === null || location === void 0 ? void 0 : location.street_name,
207
- title: location === null || location === void 0 ? void 0 : location.title,
208
- subtitle: location === null || location === void 0 ? void 0 : location.subtitle,
209
- directions: location === null || location === void 0 ? void 0 : location.directions,
210
- otherInformation: location === null || location === void 0 ? void 0 : location.other_information,
211
- url: location === null || location === void 0 ? void 0 : location.url,
212
- streetViewPanoId: location === null || location === void 0 || (_location$street_view = location.street_view) === null || _location$street_view === void 0 ? void 0 : _location$street_view.pano_id,
213
- streetViewPanoUrl: location === null || location === void 0 || (_location$street_view2 = location.street_view) === null || _location$street_view2 === void 0 ? void 0 : _location$street_view2.url,
214
- userId: location === null || location === void 0 ? void 0 : location.user_id,
215
- propertyNumber: location === null || location === void 0 ? void 0 : location.propertyNumber,
216
- photo: location === null || location === void 0 ? void 0 : location.photo,
217
- displayTitle: location === null || location === void 0 ? void 0 : location.display_title,
218
- country: location === null || location === void 0 ? void 0 : location.country,
219
- state: location === null || location === void 0 ? void 0 : location.state,
220
- city: location === null || location === void 0 ? void 0 : location.city,
221
- countryCode: location === null || location === void 0 ? void 0 : location.country_code,
222
- usageTypes: location === null || location === void 0 ? void 0 : location.usage_types
223
- };
224
- };
225
- exports.parseOkHiLocation = parseOkHiLocation;
226
- //# sourceMappingURL=Util.js.map