react-native-okhi 1.2.4 → 1.2.5-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.
- package/android/build.gradle +2 -2
- package/android/gradle.properties +2 -2
- package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +2 -0
- package/ios/Okhi.m +4 -0
- package/ios/Okhi.swift +29 -0
- package/lib/commonjs/OkCollect/OkHiLocationManager.js +100 -7
- package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/commonjs/OkCollect/Util.js +29 -25
- package/lib/commonjs/OkCollect/Util.js.map +1 -1
- package/lib/commonjs/OkCollect/app.json +1 -1
- package/lib/commonjs/OkCollect/types.js.map +1 -1
- package/lib/commonjs/OkCore/Helpers.js +3 -1
- package/lib/commonjs/OkCore/Helpers.js.map +1 -1
- package/lib/commonjs/OkCore/index.js +1 -0
- package/lib/commonjs/OkCore/index.js.map +1 -1
- package/lib/commonjs/OkCore/types.js +4 -0
- package/lib/commonjs/OkCore/types.js.map +1 -1
- package/lib/commonjs/OkHiNativeModule/index.js.map +1 -1
- package/lib/module/OkCollect/OkHiLocationManager.js +101 -8
- package/lib/module/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/module/OkCollect/Util.js +29 -25
- package/lib/module/OkCollect/Util.js.map +1 -1
- package/lib/module/OkCollect/app.json +1 -1
- package/lib/module/OkCollect/types.js.map +1 -1
- package/lib/module/OkCore/Helpers.js +3 -1
- package/lib/module/OkCore/Helpers.js.map +1 -1
- package/lib/module/OkCore/index.js +1 -0
- package/lib/module/OkCore/index.js.map +1 -1
- package/lib/module/OkCore/types.js +1 -1
- package/lib/module/OkCore/types.js.map +1 -1
- package/lib/module/OkHiNativeModule/index.js.map +1 -1
- package/lib/typescript/OkCollect/types.d.ts +3 -5
- package/lib/typescript/OkCore/types.d.ts +2 -1
- package/lib/typescript/OkHiNativeModule/index.d.ts +3 -0
- package/package.json +1 -1
- package/react-native-okhi.podspec +1 -1
- package/src/OkCollect/OkHiLocationManager.tsx +127 -5
- package/src/OkCollect/Util.ts +37 -29
- package/src/OkCollect/app.json +1 -1
- package/src/OkCollect/types.ts +4 -2
- package/src/OkCore/Helpers.ts +7 -1
- package/src/OkCore/index.ts +1 -0
- package/src/OkCore/types.ts +3 -1
- package/src/OkHiNativeModule/index.ts +7 -1
package/android/build.gradle
CHANGED
|
@@ -126,8 +126,8 @@ repositories {
|
|
|
126
126
|
dependencies {
|
|
127
127
|
//noinspection GradleDynamicVersion
|
|
128
128
|
implementation "com.facebook.react:react-native:+"
|
|
129
|
-
implementation 'io.okhi.android:core:1.7.
|
|
130
|
-
implementation 'io.okhi.android:okverify:1.9.
|
|
129
|
+
implementation 'io.okhi.android:core:1.7.17'
|
|
130
|
+
implementation 'io.okhi.android:okverify:1.9.39'
|
|
131
131
|
// From node_modules
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -278,6 +278,8 @@ public class OkhiModule extends ReactContextBaseJavaModule {
|
|
|
278
278
|
WritableMap map = new WritableNativeMap();
|
|
279
279
|
map.putString("manufacturer", Build.MANUFACTURER);
|
|
280
280
|
map.putString("model", Build.MODEL);
|
|
281
|
+
map.putString("osVersion", Build.VERSION.RELEASE);
|
|
282
|
+
map.putString("platform", "android");
|
|
281
283
|
promise.resolve(map);
|
|
282
284
|
}
|
|
283
285
|
|
package/ios/Okhi.m
CHANGED
|
@@ -47,4 +47,8 @@ RCT_EXTERN_METHOD(fetchCurrentLocation: (RCTPromiseResolveBlock)resolve reject:(
|
|
|
47
47
|
|
|
48
48
|
RCT_EXTERN_METHOD(fetchIOSLocationPermissionStatus: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
49
49
|
|
|
50
|
+
RCT_EXTERN_METHOD(retrieveDeviceInfo: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
51
|
+
|
|
52
|
+
RCT_EXTERN_METHOD(onStart: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
53
|
+
|
|
50
54
|
@end
|
package/ios/Okhi.swift
CHANGED
|
@@ -145,6 +145,16 @@ class Okhi: RCTEventEmitter {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
@objc func retrieveDeviceInfo(_ resolve:@escaping RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
|
|
149
|
+
let deviceInfoDict: NSDictionary = [
|
|
150
|
+
"manufacturer": "Apple",
|
|
151
|
+
"model": UIDevice.current.modelName,
|
|
152
|
+
"osVersion": UIDevice.current.systemVersion,
|
|
153
|
+
"platform": "ios"
|
|
154
|
+
]
|
|
155
|
+
resolve(deviceInfoDict)
|
|
156
|
+
}
|
|
157
|
+
|
|
148
158
|
override func supportedEvents() -> [String]! {
|
|
149
159
|
return ["onLocationPermissionStatusUpdate"]
|
|
150
160
|
}
|
|
@@ -174,6 +184,11 @@ class Okhi: RCTEventEmitter {
|
|
|
174
184
|
let manager = CLLocationManager()
|
|
175
185
|
resolve(fetchLocationPermissionStatus(status: getLocationAuthorizationStatus(manager: manager)))
|
|
176
186
|
}
|
|
187
|
+
|
|
188
|
+
@objc public func onStart(_ resolve:@escaping RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
|
|
189
|
+
OkVerify.onStart()
|
|
190
|
+
resolve(true)
|
|
191
|
+
}
|
|
177
192
|
}
|
|
178
193
|
|
|
179
194
|
// MARK: - OkHi Utils
|
|
@@ -242,3 +257,17 @@ extension Okhi: OkVerifyDelegate {
|
|
|
242
257
|
|
|
243
258
|
}
|
|
244
259
|
}
|
|
260
|
+
|
|
261
|
+
extension UIDevice {
|
|
262
|
+
var modelName: String {
|
|
263
|
+
var systemInfo = utsname()
|
|
264
|
+
uname(&systemInfo)
|
|
265
|
+
let machineMirror = Mirror(reflecting: systemInfo.machine)
|
|
266
|
+
let identifier = machineMirror.children.reduce("") { identifier, element in
|
|
267
|
+
guard let value = element.value as? Int8, value != 0 else { return identifier }
|
|
268
|
+
return identifier + String(UnicodeScalar(UInt8(value)))
|
|
269
|
+
}
|
|
270
|
+
return identifier
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
@@ -36,10 +36,12 @@ const OkHiLocationManager = props => {
|
|
|
36
36
|
onCloseRequest,
|
|
37
37
|
onError,
|
|
38
38
|
loader,
|
|
39
|
-
launch
|
|
39
|
+
launch,
|
|
40
|
+
config
|
|
40
41
|
} = props;
|
|
41
42
|
const webViewRef = (0, _react.useRef)(null);
|
|
42
43
|
const startMessage = props.mode === 'create' ? 'start_app' : 'select_location';
|
|
44
|
+
const [ready, setReady] = (0, _react.useState)(false);
|
|
43
45
|
(0, _react.useEffect)(() => {
|
|
44
46
|
if (applicationConfiguration == null && token == null && user.phone) {
|
|
45
47
|
(0, _OkCore.getApplicationConfiguration)().then(config => {
|
|
@@ -75,24 +77,111 @@ const OkHiLocationManager = props => {
|
|
|
75
77
|
}).catch(console.error);
|
|
76
78
|
}
|
|
77
79
|
}, [applicationConfiguration, props, token]);
|
|
78
|
-
|
|
80
|
+
(0, _react.useEffect)(() => {
|
|
81
|
+
if (launch) {
|
|
82
|
+
if (typeof (config === null || config === void 0 ? void 0 : config.permissionsOnboarding) === 'boolean' && !config.permissionsOnboarding) {
|
|
83
|
+
(0, _OkCore.isBackgroundLocationPermissionGranted)().then(result => {
|
|
84
|
+
if (!result) {
|
|
85
|
+
onError(new _OkHiException.OkHiException({
|
|
86
|
+
code: _OkHiException.OkHiException.PERMISSION_DENIED_CODE,
|
|
87
|
+
message: 'Always location permission must be granted to launch OkCollect'
|
|
88
|
+
}));
|
|
89
|
+
} else {
|
|
90
|
+
setReady(true);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
setReady(true);
|
|
95
|
+
}
|
|
96
|
+
} else {
|
|
97
|
+
setReady(false);
|
|
98
|
+
}
|
|
99
|
+
}, [launch, config === null || config === void 0 ? void 0 : config.permissionsOnboarding]);
|
|
100
|
+
const runWebViewCallback = value => {
|
|
101
|
+
if (webViewRef.current) {
|
|
102
|
+
const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === "function") { runOkHiLocationManagerCallback("${value}") } })()`;
|
|
103
|
+
webViewRef.current.injectJavaScript(jsString);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const handleAndroidRequestLocationPermission = async level => {
|
|
107
|
+
if (level === 'whenInUse') {
|
|
108
|
+
const result = await (0, _OkCore.requestLocationPermission)();
|
|
109
|
+
runWebViewCallback(result ? 'whenInUse' : 'denied');
|
|
110
|
+
} else if (level === 'always') {
|
|
111
|
+
const result = await (0, _OkCore.requestBackgroundLocationPermission)();
|
|
112
|
+
if (result) {
|
|
113
|
+
runWebViewCallback('always');
|
|
114
|
+
} else {
|
|
115
|
+
const isWhenInUseGranted = await (0, _OkCore.isLocationPermissionGranted)();
|
|
116
|
+
runWebViewCallback(isWhenInUseGranted ? 'whenInUse' : 'denied');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const handleIOSRequestLocationPermission = async level => {
|
|
121
|
+
const unknownError = new _OkHiException.OkHiException({
|
|
122
|
+
code: _OkHiException.OkHiException.UNKNOWN_ERROR_CODE,
|
|
123
|
+
message: 'Something went wrong while requesting permissions. Please try again later.'
|
|
124
|
+
});
|
|
125
|
+
try {
|
|
126
|
+
const isServiceAvailable = await (0, _OkCore.isLocationServicesEnabled)();
|
|
127
|
+
if (!isServiceAvailable) {
|
|
128
|
+
(0, _OkCore.openAppSettings)();
|
|
129
|
+
} else if (level === 'whenInUse') {
|
|
130
|
+
const result = await (0, _OkCore.requestLocationPermission)();
|
|
131
|
+
runWebViewCallback(result ? level : 'denied');
|
|
132
|
+
} else if (level === 'always') {
|
|
133
|
+
const granted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
|
|
134
|
+
if (granted) {
|
|
135
|
+
runWebViewCallback(level);
|
|
136
|
+
} else {
|
|
137
|
+
(0, _OkCore.openAppSettings)();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
} catch (error) {
|
|
141
|
+
onError(unknownError);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
const handleRequestLocationPermission = async _ref => {
|
|
145
|
+
let {
|
|
146
|
+
level
|
|
147
|
+
} = _ref;
|
|
148
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
149
|
+
handleAndroidRequestLocationPermission(level);
|
|
150
|
+
} else if (_reactNative.Platform.OS === 'ios') {
|
|
151
|
+
handleIOSRequestLocationPermission(level);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const handleOpenAppSettings = async () => {
|
|
155
|
+
try {
|
|
156
|
+
const granted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
|
|
157
|
+
if (granted) {
|
|
158
|
+
runWebViewCallback('always');
|
|
159
|
+
} else {
|
|
160
|
+
await (0, _OkCore.openAppSettings)();
|
|
161
|
+
}
|
|
162
|
+
} catch (error) {
|
|
163
|
+
const err = error;
|
|
164
|
+
onError(err);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const handleOnMessage = _ref2 => {
|
|
79
168
|
let {
|
|
80
169
|
nativeEvent: {
|
|
81
170
|
data
|
|
82
171
|
}
|
|
83
|
-
} =
|
|
172
|
+
} = _ref2;
|
|
84
173
|
try {
|
|
85
174
|
const response = JSON.parse(data);
|
|
86
175
|
if (response.message === 'fatal_exit') {
|
|
87
176
|
onError(new _OkHiException.OkHiException({
|
|
88
177
|
code: _OkHiException.OkHiException.UNKNOWN_ERROR_CODE,
|
|
89
|
-
message:
|
|
178
|
+
message: 'Something went wrong, please try again later.'
|
|
90
179
|
}));
|
|
91
180
|
} else if (response.message === 'exit_app') {
|
|
92
181
|
onCloseRequest();
|
|
93
182
|
} else if (response.message === 'request_enable_protected_apps') {
|
|
94
183
|
(0, _OkCore.openProtectedAppsSettings)();
|
|
95
|
-
} else {
|
|
184
|
+
} else if (response.message === 'location_created' || response.message === 'location_selected' || response.message === 'location_updated') {
|
|
96
185
|
onSuccess({
|
|
97
186
|
user: {
|
|
98
187
|
...response.payload.user,
|
|
@@ -118,6 +207,10 @@ const OkHiLocationManager = props => {
|
|
|
118
207
|
});
|
|
119
208
|
}
|
|
120
209
|
});
|
|
210
|
+
} else if (response.message === 'request_location_permission') {
|
|
211
|
+
handleRequestLocationPermission(response.payload);
|
|
212
|
+
} else if (response.message === 'open_app_settings') {
|
|
213
|
+
handleOpenAppSettings();
|
|
121
214
|
}
|
|
122
215
|
} catch (error) {
|
|
123
216
|
let errorMessage = 'Something went wrong';
|
|
@@ -173,9 +266,9 @@ const OkHiLocationManager = props => {
|
|
|
173
266
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
|
|
174
267
|
animationType: "slide",
|
|
175
268
|
transparent: false,
|
|
176
|
-
visible:
|
|
269
|
+
visible: ready,
|
|
177
270
|
onRequestClose: handleModalRequestClose
|
|
178
|
-
},
|
|
271
|
+
}, ready ? renderContent() : null);
|
|
179
272
|
};
|
|
180
273
|
exports.OkHiLocationManager = OkHiLocationManager;
|
|
181
274
|
var _default = OkHiLocationManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkHiAuth","_OkVerify","_OkCore","_OkHiNativeModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","OkHiLocationManager","props","token","setToken","useState","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","startMessage","mode","useEffect","phone","getApplicationConfiguration","then","config","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","OkHiAuth","anonymousSignInWithPhoneNumber","catch","error","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","console","handleOnMessage","_ref","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","toString","openProtectedAppsSettings","fcmPushNotificationToken","location","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","sv","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current","current","goBack","renderContent","createElement","Spinner","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","SafeAreaView","WebView","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","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} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n openProtectedAppsSettings,\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 [token, setToken] = useState<string | null>(null);\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\n useEffect(() => {\n if (applicationConfiguration == null && token == null && user.phone) {\n getApplicationConfiguration()\n .then((config) => {\n if (!config && launch) {\n onError(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else if (config) {\n setApplicationConfiguration(config);\n const auth = new OkHiAuth();\n auth\n .anonymousSignInWithPhoneNumber(user.phone, ['verify'], config)\n .then(setToken)\n .catch(onError);\n }\n })\n .catch((error) => {\n if (launch) {\n onError(error);\n }\n });\n }\n }, [onError, user.phone, launch, applicationConfiguration, token]);\n\n useEffect(() => {\n if (token !== null && applicationConfiguration !== null) {\n // TODO: handle faliure\n generateStartDataPayload(props, token, applicationConfiguration)\n .then((startPayload) => {\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(applicationConfiguration),\n })\n ).catch(console.error);\n }\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload.toString(),\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else {\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\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 {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config,\n createdUser.fcmPushNotificationToken\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\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 (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === 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 ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={launch}\n onRequestClose={handleModalRequestClose}\n >\n {launch ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkHiAuth","_OkVerify","_OkCore","_OkHiNativeModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","OkHiLocationManager","props","token","setToken","useState","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","config","webViewRef","useRef","startMessage","mode","ready","setReady","useEffect","phone","getApplicationConfiguration","then","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","OkHiAuth","anonymousSignInWithPhoneNumber","catch","error","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","console","permissionsOnboarding","isBackgroundLocationPermissionGranted","result","PERMISSION_DENIED_CODE","runWebViewCallback","value","current","jsString","injectJavaScript","handleAndroidRequestLocationPermission","level","requestLocationPermission","requestBackgroundLocationPermission","isWhenInUseGranted","isLocationPermissionGranted","handleIOSRequestLocationPermission","unknownError","UNKNOWN_ERROR_CODE","isServiceAvailable","isLocationServicesEnabled","openAppSettings","granted","handleRequestLocationPermission","_ref","handleOpenAppSettings","err","handleOnMessage","_ref2","nativeEvent","data","response","parse","openProtectedAppsSettings","fcmPushNotificationToken","location","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","sv","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current","goBack","renderContent","createElement","Spinner","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","SafeAreaView","WebView","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","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} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n isLocationServicesEnabled,\n openAppSettings,\n openProtectedAppsSettings,\n requestBackgroundLocationPermission,\n requestLocationPermission,\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 [token, setToken] = useState<string | null>(null);\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, config } =\n 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\n useEffect(() => {\n if (applicationConfiguration == null && token == null && user.phone) {\n getApplicationConfiguration()\n .then((config) => {\n if (!config && launch) {\n onError(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else if (config) {\n setApplicationConfiguration(config);\n const auth = new OkHiAuth();\n auth\n .anonymousSignInWithPhoneNumber(user.phone, ['verify'], config)\n .then(setToken)\n .catch(onError);\n }\n })\n .catch((error) => {\n if (launch) {\n onError(error);\n }\n });\n }\n }, [onError, user.phone, launch, applicationConfiguration, token]);\n\n useEffect(() => {\n if (token !== null && applicationConfiguration !== null) {\n // TODO: handle faliure\n generateStartDataPayload(props, token, applicationConfiguration)\n .then((startPayload) => {\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(applicationConfiguration),\n })\n ).catch(console.error);\n }\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n useEffect(() => {\n if (launch) {\n if (\n typeof config?.permissionsOnboarding === 'boolean' &&\n !config.permissionsOnboarding\n ) {\n isBackgroundLocationPermissionGranted().then((result) => {\n if (!result) {\n onError(\n new OkHiException({\n code: OkHiException.PERMISSION_DENIED_CODE,\n message:\n 'Always location permission must be granted to launch OkCollect',\n })\n );\n } else {\n setReady(true);\n }\n });\n } else {\n setReady(true);\n }\n } else {\n setReady(false);\n }\n }, [launch, config?.permissionsOnboarding]);\n\n const runWebViewCallback = (value: string) => {\n if (webViewRef.current) {\n const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === \"function\") { runOkHiLocationManagerCallback(\"${value}\") } })()`;\n webViewRef.current.injectJavaScript(jsString);\n }\n };\n\n const handleAndroidRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n if (level === 'whenInUse') {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else if (level === 'always') {\n const result = await requestBackgroundLocationPermission();\n if (result) {\n runWebViewCallback('always');\n } else {\n const isWhenInUseGranted = await isLocationPermissionGranted();\n runWebViewCallback(isWhenInUseGranted ? 'whenInUse' : 'denied');\n }\n }\n };\n\n const handleIOSRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n const unknownError = new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message:\n 'Something went wrong while requesting permissions. Please try again later.',\n });\n try {\n const isServiceAvailable = await isLocationServicesEnabled();\n if (!isServiceAvailable) {\n openAppSettings();\n } else if (level === 'whenInUse') {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? level : 'denied');\n } else if (level === 'always') {\n const granted = await isBackgroundLocationPermissionGranted();\n if (granted) {\n runWebViewCallback(level);\n } else {\n openAppSettings();\n }\n }\n } catch (error) {\n onError(unknownError);\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 handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: 'Something went wrong, please try again later.',\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 onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\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 {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config,\n createdUser.fcmPushNotificationToken\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 }\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 (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === 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 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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"}
|
|
@@ -20,8 +20,14 @@ const fetchCurrentLocation = async () => {
|
|
|
20
20
|
* @ignore
|
|
21
21
|
*/
|
|
22
22
|
const generateStartDataPayload = async (props, authToken, applicationConfiguration) => {
|
|
23
|
-
var _props$theme, _props$theme2, _applicationConfigura, _applicationConfigura2, _applicationConfigura3, _props$config, _props$theme3, _props$config2, _props$config3, _props$config4, _props$config5, _props$config6;
|
|
23
|
+
var _props$theme, _props$theme2, _applicationConfigura, _applicationConfigura2, _applicationConfigura3, _props$config, _props$theme3, _props$config2, _props$config3, _props$config4, _props$config5, _props$config6, _props$config7;
|
|
24
24
|
const payload = {};
|
|
25
|
+
const {
|
|
26
|
+
manufacturer,
|
|
27
|
+
model,
|
|
28
|
+
osVersion,
|
|
29
|
+
platform
|
|
30
|
+
} = await _OkHiNativeModule.OkHiNativeModule.retrieveDeviceInfo();
|
|
25
31
|
payload.style = !props.theme ? undefined : {
|
|
26
32
|
base: {
|
|
27
33
|
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,
|
|
@@ -52,6 +58,12 @@ const generateStartDataPayload = async (props, authToken, applicationConfigurati
|
|
|
52
58
|
},
|
|
53
59
|
platform: {
|
|
54
60
|
name: 'react-native'
|
|
61
|
+
},
|
|
62
|
+
device: {
|
|
63
|
+
manufacturer,
|
|
64
|
+
model,
|
|
65
|
+
platform,
|
|
66
|
+
osVersion
|
|
55
67
|
}
|
|
56
68
|
};
|
|
57
69
|
payload.config = {
|
|
@@ -64,25 +76,25 @@ const generateStartDataPayload = async (props, authToken, applicationConfigurati
|
|
|
64
76
|
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,
|
|
65
77
|
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
|
|
66
78
|
},
|
|
67
|
-
protectedApps: _reactNative.Platform.OS === 'android' && (await (0, _OkCore.canOpenProtectedAppsSettings)())
|
|
79
|
+
protectedApps: _reactNative.Platform.OS === 'android' && (await (0, _OkCore.canOpenProtectedAppsSettings)()),
|
|
80
|
+
permissionsOnboarding: typeof ((_props$config7 = props.config) === null || _props$config7 === void 0 ? void 0 : _props$config7.permissionsOnboarding) === 'boolean' ? props.config.permissionsOnboarding : true
|
|
68
81
|
};
|
|
69
82
|
if (_reactNative.Platform.OS === 'ios') {
|
|
70
83
|
const status = await _OkHiNativeModule.OkHiNativeModule.fetchIOSLocationPermissionStatus();
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
84
|
+
const locationPermission = status === 'notDetermined' ? 'notDetermined' : status === 'authorizedWhenInUse' ? 'whenInUse' : status === 'authorizedAlways' ? 'always' : 'denied';
|
|
85
|
+
payload.context.permissions = {
|
|
86
|
+
location: locationPermission
|
|
87
|
+
};
|
|
88
|
+
if (status === 'authorized' || status === 'authorizedWhenInUse' || status === 'authorizedAlways') {
|
|
89
|
+
const location = await fetchCurrentLocation();
|
|
90
|
+
if (location) {
|
|
91
|
+
payload.context.coordinates = {
|
|
92
|
+
currentLocation: {
|
|
93
|
+
lat: location.lat,
|
|
94
|
+
lng: location.lng,
|
|
95
|
+
accuracy: location.accuracy
|
|
96
|
+
}
|
|
97
|
+
};
|
|
86
98
|
}
|
|
87
99
|
}
|
|
88
100
|
} else if (_reactNative.Platform.OS === 'android') {
|
|
@@ -103,14 +115,6 @@ const generateStartDataPayload = async (props, authToken, applicationConfigurati
|
|
|
103
115
|
location: hasBackgroundLocationPermission ? 'always' : hasLocationPermission ? 'whenInUse' : 'denied'
|
|
104
116
|
};
|
|
105
117
|
}
|
|
106
|
-
const {
|
|
107
|
-
manufacturer,
|
|
108
|
-
model
|
|
109
|
-
} = await _OkHiNativeModule.OkHiNativeModule.retrieveDeviceInfo();
|
|
110
|
-
payload.context.device = {
|
|
111
|
-
manufacturer,
|
|
112
|
-
model
|
|
113
|
-
};
|
|
114
118
|
} else {
|
|
115
119
|
throw new _OkCore.OkHiException({
|
|
116
120
|
code: _OkCore.OkHiException.UNSUPPORTED_PLATFORM_CODE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OkCore","require","_app","_interopRequireDefault","_reactNative","_OkHiNativeModule","obj","__esModule","default","fetchCurrentLocation","result","OkHiNativeModule","generateStartDataPayload","props","authToken","applicationConfiguration","_props$theme","_props$theme2","_applicationConfigura","_applicationConfigura2","_applicationConfigura3","_props$config","_props$theme3","_props$config2","_props$config3","_props$config4","_props$config5","_props$config6","payload","style","theme","undefined","base","color","colors","primary","logo","appBar","name","app","user","phone","firstName","lastName","email","auth","context","container","version","developer","library","manifest","platform","config","streetView","backgroundColor","visible","addressTypes","home","work","protectedApps","Platform","OS","canOpenProtectedAppsSettings","status","fetchIOSLocationPermissionStatus","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","isLocationPermissionGranted","error","console","log","hasBackgroundLocationPermission","isBackgroundLocationPermissionGranted","manufacturer","model","retrieveDeviceInfo","device","OkHiException","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","exports","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","LEGACY_DEV_FRAME_URL","LEGACY_PROD_FRAME_URL","LEGACY_SANDBOX_FRAME_URL","Version","mode","OkHiMode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","JSON","stringify","jsAfterLoad","parseOkHiLocation","_location$geo_point","_location$geo_point2","_location$street_view","_location$street_view2","id","geo_point","lon","placeId","place_id","plusCode","plus_code","propertyName","property_name","streetName","street_name","title","subtitle","directions","otherInformation","other_information","url","streetViewPanoId","street_view","pano_id","streetViewPanoUrl","userId","user_id","propertyNumber","photo","displayTitle","display_title","country","state","city","countryCode","country_code"],"sources":["Util.ts"],"sourcesContent":["import type { OkHiLocationManagerProps } from './types';\nimport {\n canOpenProtectedAppsSettings,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n OkHiException,\n OkHiLocation,\n} from '../OkCore';\nimport { OkHiMode } from '../OkCore';\nimport type {\n OkHiLocationManagerStartDataPayload,\n OkHiLocationManagerStartMessage,\n} from './types';\nimport manifest from './app.json'; //TODO: fix this\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { Platform } from 'react-native';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\nconst fetchCurrentLocation = async (): Promise<null | {\n lat: number;\n lng: number;\n accuracy: number;\n}> => {\n const result = await OkHiNativeModule.fetchCurrentLocation();\n return result;\n};\n\n/**\n * @ignore\n */\nexport const generateStartDataPayload = async (\n props: OkHiLocationManagerProps,\n authToken: string,\n applicationConfiguration: AuthApplicationConfig\n): Promise<OkHiLocationManagerStartDataPayload> => {\n const payload: any = {};\n payload.style = !props.theme\n ? undefined\n : {\n base: {\n color: props.theme?.colors?.primary,\n logo: props.theme?.appBar?.logo,\n name: applicationConfiguration.app?.name,\n },\n };\n payload.user = {\n phone: props.user.phone,\n firstName: props.user.firstName,\n lastName: props.user.lastName,\n email: props.user.email,\n };\n payload.auth = {\n authToken,\n };\n payload.context = {\n container: {\n name: applicationConfiguration.app?.name,\n version: applicationConfiguration.app?.version,\n },\n developer: {\n name: applicationConfiguration.context.developer,\n },\n library: {\n name: manifest.name,\n version: manifest.version,\n },\n platform: {\n name: 'react-native',\n },\n };\n payload.config = {\n streetView:\n typeof props.config?.streetView === 'boolean'\n ? props.config.streetView\n : true,\n appBar: {\n color: props.theme?.appBar?.backgroundColor,\n visible: props.config?.appBar?.visible,\n },\n addressTypes: {\n home:\n typeof props.config?.addressTypes?.home === 'boolean'\n ? props.config?.addressTypes?.home\n : true,\n work:\n typeof props.config?.addressTypes?.work === 'boolean'\n ? props.config?.addressTypes?.work\n : true,\n },\n protectedApps:\n Platform.OS === 'android' && (await canOpenProtectedAppsSettings()),\n };\n\n if (Platform.OS === 'ios') {\n const status = await OkHiNativeModule.fetchIOSLocationPermissionStatus();\n if (status !== 'notDetermined') {\n payload.context.permissions = {\n location:\n status === 'authorizedWhenInUse'\n ? 'whenInUse'\n : status === 'authorizedAlways' || status === 'authorized'\n ? 'always'\n : 'denided',\n };\n if (\n status === 'authorized' ||\n status === 'authorizedWhenInUse' ||\n status === 'authorizedAlways'\n ) {\n const location = await fetchCurrentLocation();\n if (location) {\n payload.context.coordinates = {\n currentLocation: {\n lat: location.lat,\n lng: location.lng,\n accuracy: location.accuracy,\n },\n };\n }\n }\n }\n } else if (Platform.OS === 'android') {\n let hasLocationPermission: boolean | undefined;\n try {\n hasLocationPermission = await isLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n let hasBackgroundLocationPermission: boolean | undefined;\n try {\n hasBackgroundLocationPermission =\n await isBackgroundLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n if (\n typeof hasLocationPermission === 'boolean' &&\n typeof hasBackgroundLocationPermission === 'boolean'\n ) {\n payload.context.permissions = {\n location: hasBackgroundLocationPermission\n ? 'always'\n : hasLocationPermission\n ? 'whenInUse'\n : 'denied',\n };\n }\n const { manufacturer, model } = await OkHiNativeModule.retrieveDeviceInfo();\n payload.context.device = {\n manufacturer,\n model,\n };\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n return payload;\n};\n\n/**\n * @ignore\n */\nexport const getFrameUrl = (\n applicationConfiguration: AuthApplicationConfig\n): string => {\n const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';\n const PROD_FRAME_URL = 'https://manager-v5.okhi.io';\n const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';\n\n const LEGACY_DEV_FRAME_URL = 'https://dev-legacy-manager-v5.okhi.io';\n const LEGACY_PROD_FRAME_URL = 'https://legacy-manager-v5.okhi.io';\n const LEGACY_SANDBOX_FRAME_URL = 'https://sandbox-legacy-manager-v5.okhi.io';\n\n if (Platform.OS === 'android' && Platform.Version < 24) {\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return LEGACY_PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return LEGACY_DEV_FRAME_URL;\n }\n return LEGACY_SANDBOX_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return DEV_FRAME_URL;\n }\n return SANDBOX_FRAME_URL;\n};\n\n/**\n * @ignore\n */\nexport const generateJavaScriptStartScript = (startPayload: {\n message: OkHiLocationManagerStartMessage;\n payload: OkHiLocationManagerStartDataPayload;\n}) => {\n const jsBeforeLoad = `\n window.isNativeApp = true;\n window.NativeApp = {\n bridge: {\n receiveMessage: window.ReactNativeWebView.postMessage\n },\n data: ${JSON.stringify(startPayload)}\n }\n true;\n `;\n const jsAfterLoad = `window.startOkHiLocationManager({ receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } }, ${JSON.stringify(\n startPayload\n )})`;\n return { jsBeforeLoad, jsAfterLoad };\n};\n\n/**\n * @ignore\n */\nexport const parseOkHiLocation = (location: any): OkHiLocation => {\n return {\n id: location?.id,\n lat: location?.geo_point?.lat,\n lon: location?.geo_point?.lon,\n placeId: location?.place_id,\n plusCode: location?.plus_code,\n propertyName: location?.property_name,\n streetName: location?.street_name,\n title: location?.title,\n subtitle: location?.subtitle,\n directions: location?.directions,\n otherInformation: location?.other_information,\n url: location?.url,\n streetViewPanoId: location?.street_view?.pano_id,\n streetViewPanoUrl: location?.street_view?.url,\n userId: location?.user_id,\n propertyNumber: location?.propertyNumber,\n photo: location?.photo,\n displayTitle: location?.display_title,\n country: location?.country,\n state: location?.state,\n city: location?.city,\n countryCode: location?.country_code,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_OkCore","require","_app","_interopRequireDefault","_reactNative","_OkHiNativeModule","obj","__esModule","default","fetchCurrentLocation","result","OkHiNativeModule","generateStartDataPayload","props","authToken","applicationConfiguration","_props$theme","_props$theme2","_applicationConfigura","_applicationConfigura2","_applicationConfigura3","_props$config","_props$theme3","_props$config2","_props$config3","_props$config4","_props$config5","_props$config6","_props$config7","payload","manufacturer","model","osVersion","platform","retrieveDeviceInfo","style","theme","undefined","base","color","colors","primary","logo","appBar","name","app","user","phone","firstName","lastName","email","auth","context","container","version","developer","library","manifest","device","config","streetView","backgroundColor","visible","addressTypes","home","work","protectedApps","Platform","OS","canOpenProtectedAppsSettings","permissionsOnboarding","status","fetchIOSLocationPermissionStatus","locationPermission","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","isLocationPermissionGranted","error","console","log","hasBackgroundLocationPermission","isBackgroundLocationPermissionGranted","OkHiException","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","exports","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","LEGACY_DEV_FRAME_URL","LEGACY_PROD_FRAME_URL","LEGACY_SANDBOX_FRAME_URL","Version","mode","OkHiMode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","JSON","stringify","jsAfterLoad","parseOkHiLocation","_location$geo_point","_location$geo_point2","_location$street_view","_location$street_view2","id","geo_point","lon","placeId","place_id","plusCode","plus_code","propertyName","property_name","streetName","street_name","title","subtitle","directions","otherInformation","other_information","url","streetViewPanoId","street_view","pano_id","streetViewPanoUrl","userId","user_id","propertyNumber","photo","displayTitle","display_title","country","state","city","countryCode","country_code"],"sources":["Util.ts"],"sourcesContent":["import type { OkHiLocationManagerProps } from './types';\nimport {\n canOpenProtectedAppsSettings,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n OkHiException,\n OkHiLocation,\n} from '../OkCore';\nimport { OkHiMode } from '../OkCore';\nimport type {\n OkHiLocationManagerStartDataPayload,\n OkHiLocationManagerStartMessage,\n} from './types';\nimport manifest from './app.json'; //TODO: fix this\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { Platform } from 'react-native';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\nconst fetchCurrentLocation = async (): Promise<null | {\n lat: number;\n lng: number;\n accuracy: number;\n}> => {\n const result = await OkHiNativeModule.fetchCurrentLocation();\n return result;\n};\n\n/**\n * @ignore\n */\nexport const generateStartDataPayload = async (\n props: OkHiLocationManagerProps,\n authToken: string,\n applicationConfiguration: AuthApplicationConfig\n): Promise<OkHiLocationManagerStartDataPayload> => {\n const payload: any = {};\n const { manufacturer, model, osVersion, platform } =\n await OkHiNativeModule.retrieveDeviceInfo();\n payload.style = !props.theme\n ? undefined\n : {\n base: {\n color: props.theme?.colors?.primary,\n logo: props.theme?.appBar?.logo,\n name: applicationConfiguration.app?.name,\n },\n };\n payload.user = {\n phone: props.user.phone,\n firstName: props.user.firstName,\n lastName: props.user.lastName,\n email: props.user.email,\n };\n payload.auth = {\n authToken,\n };\n payload.context = {\n container: {\n name: applicationConfiguration.app?.name,\n version: applicationConfiguration.app?.version,\n },\n developer: {\n name: applicationConfiguration.context.developer,\n },\n library: {\n name: manifest.name,\n version: manifest.version,\n },\n platform: {\n name: 'react-native',\n },\n device: {\n manufacturer,\n model,\n platform,\n osVersion,\n },\n };\n payload.config = {\n streetView:\n typeof props.config?.streetView === 'boolean'\n ? props.config.streetView\n : true,\n appBar: {\n color: props.theme?.appBar?.backgroundColor,\n visible: props.config?.appBar?.visible,\n },\n addressTypes: {\n home:\n typeof props.config?.addressTypes?.home === 'boolean'\n ? props.config?.addressTypes?.home\n : true,\n work:\n typeof props.config?.addressTypes?.work === 'boolean'\n ? props.config?.addressTypes?.work\n : true,\n },\n protectedApps:\n Platform.OS === 'android' && (await canOpenProtectedAppsSettings()),\n permissionsOnboarding:\n typeof props.config?.permissionsOnboarding === 'boolean'\n ? props.config.permissionsOnboarding\n : true,\n };\n\n if (Platform.OS === 'ios') {\n const status = await OkHiNativeModule.fetchIOSLocationPermissionStatus();\n const locationPermission =\n status === 'notDetermined'\n ? 'notDetermined'\n : status === 'authorizedWhenInUse'\n ? 'whenInUse'\n : status === 'authorizedAlways'\n ? 'always'\n : 'denied';\n payload.context.permissions = {\n location: locationPermission,\n };\n if (\n status === 'authorized' ||\n status === 'authorizedWhenInUse' ||\n status === 'authorizedAlways'\n ) {\n const location = await fetchCurrentLocation();\n if (location) {\n payload.context.coordinates = {\n currentLocation: {\n lat: location.lat,\n lng: location.lng,\n accuracy: location.accuracy,\n },\n };\n }\n }\n } else if (Platform.OS === 'android') {\n let hasLocationPermission: boolean | undefined;\n try {\n hasLocationPermission = await isLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n let hasBackgroundLocationPermission: boolean | undefined;\n try {\n hasBackgroundLocationPermission =\n await isBackgroundLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n if (\n typeof hasLocationPermission === 'boolean' &&\n typeof hasBackgroundLocationPermission === 'boolean'\n ) {\n payload.context.permissions = {\n location: hasBackgroundLocationPermission\n ? 'always'\n : hasLocationPermission\n ? 'whenInUse'\n : 'denied',\n };\n }\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n return payload;\n};\n\n/**\n * @ignore\n */\nexport const getFrameUrl = (\n applicationConfiguration: AuthApplicationConfig\n): string => {\n const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';\n const PROD_FRAME_URL = 'https://manager-v5.okhi.io';\n const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';\n\n const LEGACY_DEV_FRAME_URL = 'https://dev-legacy-manager-v5.okhi.io';\n const LEGACY_PROD_FRAME_URL = 'https://legacy-manager-v5.okhi.io';\n const LEGACY_SANDBOX_FRAME_URL = 'https://sandbox-legacy-manager-v5.okhi.io';\n\n if (Platform.OS === 'android' && Platform.Version < 24) {\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return LEGACY_PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return LEGACY_DEV_FRAME_URL;\n }\n return LEGACY_SANDBOX_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return DEV_FRAME_URL;\n }\n return SANDBOX_FRAME_URL;\n};\n\n/**\n * @ignore\n */\nexport const generateJavaScriptStartScript = (startPayload: {\n message: OkHiLocationManagerStartMessage;\n payload: OkHiLocationManagerStartDataPayload;\n}) => {\n const jsBeforeLoad = `\n window.isNativeApp = true;\n window.NativeApp = {\n bridge: {\n receiveMessage: window.ReactNativeWebView.postMessage\n },\n data: ${JSON.stringify(startPayload)}\n }\n true;\n `;\n const jsAfterLoad = `window.startOkHiLocationManager({ receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } }, ${JSON.stringify(\n startPayload\n )})`;\n return { jsBeforeLoad, jsAfterLoad };\n};\n\n/**\n * @ignore\n */\nexport const parseOkHiLocation = (location: any): OkHiLocation => {\n return {\n id: location?.id,\n lat: location?.geo_point?.lat,\n lon: location?.geo_point?.lon,\n placeId: location?.place_id,\n plusCode: location?.plus_code,\n propertyName: location?.property_name,\n streetName: location?.street_name,\n title: location?.title,\n subtitle: location?.subtitle,\n directions: location?.directions,\n otherInformation: location?.other_information,\n url: location?.url,\n streetViewPanoId: location?.street_view?.pano_id,\n streetViewPanoUrl: location?.street_view?.url,\n userId: location?.user_id,\n propertyNumber: location?.propertyNumber,\n photo: location?.photo,\n displayTitle: location?.display_title,\n country: location?.country,\n state: location?.state,\n city: location?.city,\n countryCode: location?.country_code,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit';\n payload:
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n permissionsOnboarding?: boolean;\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit'\n | 'request_location_permission';\n payload: any;\n}\n"],"mappings":""}
|
|
@@ -310,7 +310,9 @@ const isAndroidNotificationGranted = async () => {
|
|
|
310
310
|
if (Number(sdkVersion) < 33) {
|
|
311
311
|
return true;
|
|
312
312
|
}
|
|
313
|
-
const
|
|
313
|
+
const permission = _reactNative.PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS || _reactNative.PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION;
|
|
314
|
+
if (!permission) throw new Error('Unable to request notification permission');
|
|
315
|
+
const hasPermission = await _reactNative.PermissionsAndroid.check(_reactNative.PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS || _reactNative.PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION);
|
|
314
316
|
return hasPermission;
|
|
315
317
|
}, 'android');
|
|
316
318
|
};
|