react-native-okhi 1.2.26 → 1.2.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/OkCollect/OkHiLocationManager.js +1 -2
- package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/commonjs/OkCollect/app.json +1 -1
- package/lib/module/OkCollect/OkHiLocationManager.js +1 -2
- package/lib/module/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/module/OkCollect/app.json +1 -1
- package/package.json +1 -1
- package/src/OkCollect/OkHiLocationManager.tsx +1 -2
- package/src/OkCollect/app.json +1 -1
|
@@ -41,7 +41,7 @@ const OkHiLocationManager = props => {
|
|
|
41
41
|
const [ready, setReady] = (0, _react.useState)(false);
|
|
42
42
|
const androidAlwaysRequested = (0, _react.useRef)(false);
|
|
43
43
|
(0, _react.useEffect)(() => {
|
|
44
|
-
if (launch) {
|
|
44
|
+
if (typeof launch === 'boolean') {
|
|
45
45
|
setReady(launch);
|
|
46
46
|
}
|
|
47
47
|
}, [launch]);
|
|
@@ -190,7 +190,6 @@ const OkHiLocationManager = props => {
|
|
|
190
190
|
}) => {
|
|
191
191
|
try {
|
|
192
192
|
const response = JSON.parse(data);
|
|
193
|
-
console.log(response);
|
|
194
193
|
if (response.message === 'fatal_exit') {
|
|
195
194
|
//TODO: figure out bad phone number code
|
|
196
195
|
onError(new _OkHiException.OkHiException({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkVerify","_OkCore","_OkHiNativeModule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","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","log","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 (launch) {\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 console.log(response);\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
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkVerify","_OkCore","_OkHiNativeModule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","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":[]}
|
|
@@ -34,7 +34,7 @@ export const OkHiLocationManager = props => {
|
|
|
34
34
|
const [ready, setReady] = useState(false);
|
|
35
35
|
const androidAlwaysRequested = useRef(false);
|
|
36
36
|
useEffect(() => {
|
|
37
|
-
if (launch) {
|
|
37
|
+
if (typeof launch === 'boolean') {
|
|
38
38
|
setReady(launch);
|
|
39
39
|
}
|
|
40
40
|
}, [launch]);
|
|
@@ -183,7 +183,6 @@ export const OkHiLocationManager = props => {
|
|
|
183
183
|
}) => {
|
|
184
184
|
try {
|
|
185
185
|
const response = JSON.parse(data);
|
|
186
|
-
console.log(response);
|
|
187
186
|
if (response.message === 'fatal_exit') {
|
|
188
187
|
//TODO: figure out bad phone number code
|
|
189
188
|
onError(new OkHiException({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","fetchCurrentLocation","OkHiException","start","sv","getApplicationConfiguration","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","openAppSettings","openProtectedAppsSettings","requestBackgroundLocationPermission","requestLocationPermission","OkHiNativeModule","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","startMessage","mode","ready","setReady","androidAlwaysRequested","startOkHiLocationManager","appConfiguration","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","OS","Version","setItem","JSON","stringify","payload","url","catch","console","error","runWebViewCallback","result","_webViewRef$current","level","getLocationAccuracyLevel","callbackResult","update","locationAccuracyLevel","jsonUpdate","replace","jsString","current","injectJavaScript","handleAndroidRequestLocationPermission","_isLocationPermissionGranted","_isBackgroundLocationPermissionGranted","_locationAccuracyLevel","handleIOSRequestLocationPermission","handleRequestLocationPermission","handleOpenAppSettings","granted","err","handleFetchCurrentLocation","location","_webViewRef$current2","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current3","handleOnMessage","nativeEvent","data","response","parse","log","UNKNOWN_ERROR_CODE","fcmPushNotificationToken","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current4","goBack","renderContent","createElement","jsAfterLoad","jsBeforeLoad","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","animationType","transparent","visible","onRequestClose"],"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 (launch) {\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 console.log(response);\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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC1D,SAASC,KAAK,EAAEC,YAAY,EAAEC,QAAQ,QAAQ,cAAc;AAC5D,SAASC,OAAO,QAA6B,sBAAsB;AACnE,SAASC,OAAO,QAAQ,WAAW;AAMnC,SACEC,WAAW,EACXC,6BAA6B,EAC7BC,wBAAwB,EACxBC,iBAAiB,EACjBC,oBAAoB,QACf,QAAQ;AACf,SAASC,aAAa,QAAQ,yBAAyB;AAEvD,SAASC,KAAK,IAAIC,EAAE,QAAQ,aAAa;AACzC,SACEC,2BAA2B,EAC3BC,qCAAqC,EACrCC,2BAA2B,EAC3BC,eAAe,EACfC,yBAAyB,EACzBC,mCAAmC,EACnCC,yBAAyB,QAEpB,WAAW;AAClB,SAASC,gBAAgB,QAAQ,qBAAqB;;AAEtD;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM,CAACC,wBAAwB,EAAEC,2BAA2B,CAAC,GAC3D3B,QAAQ,CAA+B,IAAI,CAAC;EAC9C,MAAM,CAAC4B,YAAY,EAAEC,eAAe,CAAC,GACnC7B,QAAQ,CAA6C,IAAI,CAAC;EAC5D,MAAM8B,YAAY,GAAG;IAAEC,IAAI,EAAE;EAAE,CAAC;EAChC,MAAMC,KAAK,GAAGP,KAAK,CAACO,KAAK,GACrB;IAAE,GAAGP,KAAK,CAACO,KAAK;IAAE,GAAGF;EAAa,CAAC,GACnCA,YAAY;EAEhB,MAAM;IAAEG,IAAI;IAAEC,SAAS;IAAEC,cAAc;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGb,KAAK;EAC1E,MAAMc,UAAU,GAAGrC,MAAM,CAAiB,IAAI,CAAC;EAC/C,MAAMsC,YAAY,GAChBf,KAAK,CAACgB,IAAI,KAAK,QAAQ,GAAG,WAAW,GAAG,iBAAiB;EAC3D,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG3C,QAAQ,CAAC,KAAK,CAAC;EACzC,MAAM4C,sBAAsB,GAAG1C,MAAM,CAAC,KAAK,CAAC;EAE5CD,SAAS,CAAC,MAAM;IACd,IAAIqC,MAAM,EAAE;MACVK,QAAQ,CAACL,MAAM,CAAC;IAClB;EACF,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZrC,SAAS,CAAC,MAAM;IACd,eAAe4C,wBAAwBA,CAAA,EAAG;MACxC,MAAMC,gBAAgB,GAAG,MAAM9B,2BAA2B,CAAC,CAAC;MAC5D,IAAI,CAAC8B,gBAAgB,EAAE;QACrB,MAAM,IAAIjC,aAAa,CAAC;UACtBkC,IAAI,EAAElC,aAAa,CAACmC,iBAAiB;UACrCC,OAAO,EAAEpC,aAAa,CAACqC;QACzB,CAAC,CAAC;MACJ;MACA,MAAMtB,YAAY,GAAG,MAAMlB,wBAAwB,CACjDe,KAAK,EACLqB,gBACF,CAAC;MACDnB,2BAA2B,CAACmB,gBAAgB,CAAC;MAC7CjB,eAAe,CAACD,YAAY,CAAC;MAC7B,IAAIvB,QAAQ,CAAC8C,EAAE,KAAK,SAAS,IAAI9C,QAAQ,CAAC+C,OAAO,GAAG,EAAE,EAAE;QACtD7B,gBAAgB,CAAC8B,OAAO,CACtB,0BAA0B,EAC1BC,IAAI,CAACC,SAAS,CAAC;UACbN,OAAO,EAAET,YAAY;UACrBgB,OAAO,EAAE5B,YAAY;UACrB6B,GAAG,EAAEjD,WAAW,CAACsC,gBAAgB;QACnC,CAAC,CACH,CAAC,CAACY,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC;MACxB;IACF;IAEA,IAAItB,MAAM,EAAE;MACVO,wBAAwB,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAACP,MAAM,EAAEb,KAAK,EAAEW,OAAO,CAAC,CAAC;EAE5B,MAAMyB,kBAAkB,GAAG,MAAOC,MAAc,IAAK;IAAA,IAAAC,mBAAA;IACnD,MAAMC,KAAK,GAAG,MAAMzC,gBAAgB,CAAC0C,wBAAwB,CAAC,CAAC;IAC/D,IAAIC,cAAc,GAAGJ,MAAM;IAC3B,IACE,CAACA,MAAM,KAAK,SAAS,IAAIA,MAAM,KAAK,QAAQ,KAC5CE,KAAK,KAAK,aAAa,EACvB;MACAE,cAAc,GAAG,WAAW;IAC9B;IACA,MAAMC,MAAM,GAAG;MAAEC,qBAAqB,EAAEJ;IAAM,CAAC;IAC/C,MAAMK,UAAU,GAAGf,IAAI,CAACC,SAAS,CAACY,MAAM,CAAC,CACtCG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CACtBA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IACvB,MAAMC,QAAQ,GAAG;AACrB;AACA;AACA,4CAA4CL,cAAc,OAAOG,UAAU;AAC3E;AACA;AACA,KAAK;IACD,CAAAN,mBAAA,GAAAxB,UAAU,CAACiC,OAAO,cAAAT,mBAAA,eAAlBA,mBAAA,CAAoBU,gBAAgB,CAACF,QAAQ,CAAC;EAChD,CAAC;EAED,MAAMG,sCAAsC,GAAG,MAC7CV,KAA6B,IAC1B;IACH,IAAI;MACF,MAAMW,4BAA4B,GAAG,MAAMzD,2BAA2B,CAAC,CAAC;MACxE,MAAM0D,sCAAsC,GAC1C,MAAM3D,qCAAqC,CAAC,CAAC;MAC/C,MAAM4D,sBAAsB,GAC1B,MAAMtD,gBAAgB,CAAC0C,wBAAwB,CAAC,CAAC;MACnD,IACEW,sCAAsC,IACtCC,sBAAsB,KAAK,SAAS,EACpC;QACAhB,kBAAkB,CAAC,QAAQ,CAAC;MAC9B,CAAC,MAAM,IACLG,KAAK,KAAK,WAAW,IACrBW,4BAA4B,IAC5BE,sBAAsB,KAAK,SAAS,EACpC;QACAhB,kBAAkB,CAAC,WAAW,CAAC;MACjC,CAAC,MAAM,IACLG,KAAK,KAAK,WAAW,IACrBa,sBAAsB,KAAK,eAAe,EAC1C;QACA,MAAMf,MAAM,GAAG,MAAMxC,yBAAyB,CAAC,CAAC;QAChDuC,kBAAkB,CAACC,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;MACrD,CAAC,MAAM,IAAIE,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAMF,MAAM,GAAG,MAAMzC,mCAAmC,CAAC,CAAC;QAC1DwC,kBAAkB,CAACC,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChDlB,sBAAsB,CAAC4B,OAAO,GAAG,IAAI;MACvC,CAAC,MAAM,IACLR,KAAK,KAAK,WAAW,IACrBa,sBAAsB,KAAK,aAAa,EACxC;QACA,MAAMf,MAAM,GAAG,MAAMxC,yBAAyB,CAAC,CAAC;QAChDuC,kBAAkB,CAACC,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;MACrD,CAAC,MAAM;QACL3C,eAAe,CAAC,CAAC;MACnB;IACF,CAAC,CAAC,OAAOyC,KAAK,EAAE;MACdxB,OAAO,CACL,IAAIvB,aAAa,CAAC;QAChBkC,IAAI,EAAE,SAAS;QACfE,OAAO,EAAE;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAM6B,kCAAkC,GAAG,MAAOd,KAAa,IAAK;IAClE,IAAI;MACF,MAAMW,4BAA4B,GAAG,MAAMzD,2BAA2B,CAAC,CAAC;MACxE,MAAM0D,sCAAsC,GAC1C,MAAM3D,qCAAqC,CAAC,CAAC;MAC/C,MAAM4D,sBAAsB,GAC1B,MAAMtD,gBAAgB,CAAC0C,wBAAwB,CAAC,CAAC;MAEnD,IACEW,sCAAsC,IACtCC,sBAAsB,KAAK,SAAS,EACpC;QACAhB,kBAAkB,CAAC,QAAQ,CAAC;MAC9B,CAAC,MAAM,IACLG,KAAK,KAAK,WAAW,IACrBW,4BAA4B,IAC5BE,sBAAsB,KAAK,SAAS,EACpC;QACAhB,kBAAkB,CAAC,WAAW,CAAC;MACjC,CAAC,MAAM,IAAIG,KAAK,KAAK,WAAW,IAAI,CAACW,4BAA4B,EAAE;QACjE,MAAMb,MAAM,GAAG,MAAMxC,yBAAyB,CAAC,CAAC;QAChDuC,kBAAkB,CAACC,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;MACrD,CAAC,MAAM;QACL3C,eAAe,CAAC,CAAC;MACnB;IACF,CAAC,CAAC,OAAOyC,KAAK,EAAE;MACdxB,OAAO,CACL,IAAIvB,aAAa,CAAC;QAChBkC,IAAI,EAAE,SAAS;QACfE,OAAO,EAAE;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAM8B,+BAA+B,GAAG,MAAAA,CAAO;IAC7Cf;EAGF,CAAC,KAAK;IACJ,IAAI3D,QAAQ,CAAC8C,EAAE,KAAK,SAAS,EAAE;MAC7BuB,sCAAsC,CAACV,KAAK,CAAC;IAC/C,CAAC,MAAM,IAAI3D,QAAQ,CAAC8C,EAAE,KAAK,KAAK,EAAE;MAChC2B,kCAAkC,CAACd,KAAK,CAAC;IAC3C;EACF,CAAC;EAED,MAAMgB,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxC,IAAI;MACF,MAAMC,OAAO,GAAG,MAAMhE,qCAAqC,CAAC,CAAC;MAC7D,IAAIgE,OAAO,EAAE;QACXpB,kBAAkB,CAAC,QAAQ,CAAC;MAC9B,CAAC,MAAM;QACL,MAAM1C,eAAe,CAAC,CAAC;MACzB;IACF,CAAC,CAAC,OAAOyC,KAAK,EAAE;MACd,MAAMsB,GAAG,GAAGtB,KAAsB;MAClCxB,OAAO,CAAC8C,GAAG,CAAC;IACd;EACF,CAAC;EAED,MAAMC,0BAA0B,GAAG,MAAAA,CAAA,KAAY;IAC7C,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAMxE,oBAAoB,CAAC,CAAC;MAC7C,IAAIwE,QAAQ,EAAE;QAAA,IAAAC,oBAAA;QACZ,MAAMd,QAAQ,GAAG,uCAAuCa,QAAQ,CAACE,GAAG,SAASF,QAAQ,CAACG,GAAG,cAAcH,QAAQ,CAACI,QAAQ,IAAI;QAC5H,CAAAH,oBAAA,GAAA9C,UAAU,CAACiC,OAAO,cAAAa,oBAAA,eAAlBA,oBAAA,CAAoBZ,gBAAgB,CAACF,QAAQ,CAAC;MAChD;IACF,CAAC,CAAC,OAAOX,KAAK,EAAE;MACdD,OAAO,CAACC,KAAK,CAACA,KAAK,CAAC;IACtB;EACF,CAAC;;EAED;EACA,MAAM6B,mBAAmB,GAAGA,CAAA,KAAM;IAChC,IAAIpF,QAAQ,CAAC8C,EAAE,KAAK,KAAK,EAAE;MAAA,IAAAuC,oBAAA;MACzB,MAAMnB,QAAQ,GACZ,+eAA+e;MACjf,CAAAmB,oBAAA,GAAAnD,UAAU,CAACiC,OAAO,cAAAkB,oBAAA,eAAlBA,oBAAA,CAAoBjB,gBAAgB,CAACF,QAAQ,CAAC;IAChD;EACF,CAAC;EAED,MAAMoB,eAAe,GAAGA,CAAC;IAAEC,WAAW,EAAE;MAAEC;IAAK;EAAuB,CAAC,KAAK;IAC1E,IAAI;MACF,MAAMC,QAAqC,GAAGxC,IAAI,CAACyC,KAAK,CAACF,IAAI,CAAC;MAC9DlC,OAAO,CAACqC,GAAG,CAACF,QAAQ,CAAC;MACrB,IAAIA,QAAQ,CAAC7C,OAAO,KAAK,YAAY,EAAE;QACrC;QACAb,OAAO,CACL,IAAIvB,aAAa,CAAC;UAChBkC,IAAI,EAAElC,aAAa,CAACoF,kBAAkB;UACtChD,OAAO,EAAE6C,QAAQ,CAACtC;QACpB,CAAC,CACH,CAAC;MACH,CAAC,MAAM,IAAIsC,QAAQ,CAAC7C,OAAO,KAAK,UAAU,EAAE;QAC1Cd,cAAc,CAAC,CAAC;MAClB,CAAC,MAAM,IAAI2D,QAAQ,CAAC7C,OAAO,KAAK,+BAA+B,EAAE;QAC/D7B,yBAAyB,CAAC,CAAC;MAC7B,CAAC,MAAM,IACL0E,QAAQ,CAAC7C,OAAO,KAAK,kBAAkB,IACvC6C,QAAQ,CAAC7C,OAAO,KAAK,mBAAmB,IACxC6C,QAAQ,CAAC7C,OAAO,KAAK,kBAAkB,EACvC;QACAN,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjBT,SAAS,CAAC;UACRD,IAAI,EAAE;YACJ,GAAG6D,QAAQ,CAACtC,OAAO,CAACvB,IAAI;YACxBiE,wBAAwB,EAAEjE,IAAI,CAACiE;UACjC,CAAC;UACDd,QAAQ,EAAEzE,iBAAiB,CAACmF,QAAQ,CAACtC,OAAO,CAAC4B,QAAQ,CAAC;UACtDe,iBAAiB,EAAE,SAAAA,CAAA,EAAY;YAC7B,MAAMC,WAAW,GAAG;cAAE,GAAG,IAAI,CAACnE;YAAK,CAAC;YACpC,MAAMmD,QAAQ,GAAG;cAAE,GAAG,IAAI,CAACA;YAAS,CAAC;YACrC,OAAO,IAAIiB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;cACtC,IAAI,CAACnB,QAAQ,CAACoB,EAAE,EAAE;gBAChBD,MAAM,CACJ,IAAI1F,aAAa,CAAC;kBAChBkC,IAAI,EAAElC,aAAa,CAAC4F,gBAAgB;kBACpCxD,OAAO,EAAE;gBACX,CAAC,CACH,CAAC;cACH,CAAC,MAAM,IAAI,CAACmD,WAAW,CAACI,EAAE,EAAE;gBAC1BD,MAAM,CACJ,IAAI1F,aAAa,CAAC;kBAChBkC,IAAI,EAAElC,aAAa,CAAC4F,gBAAgB;kBACpCxD,OAAO,EAAE;gBACX,CAAC,CACH,CAAC;cACH,CAAC,MAAM,IAAI,CAACmD,WAAW,CAACM,KAAK,EAAE;gBAC7BH,MAAM,CACJ,IAAI1F,aAAa,CAAC;kBAChBkC,IAAI,EAAElC,aAAa,CAACmC,iBAAiB;kBACrCC,OAAO,EAAEpC,aAAa,CAACqC;gBACzB,CAAC,CACH,CAAC;cACH,CAAC,MAAM;gBACL,MAAMyD,UAAqB,GAAGC,KAAK,CAACC,OAAO,CAACzB,QAAQ,CAACuB,UAAU,CAAC,GAC5DvB,QAAQ,CAACuB,UAAU,GACnB,CAAC,sBAAsB,CAAC;gBAC5B5F,EAAE,CACAqF,WAAW,CAACM,KAAK,EACjBN,WAAW,CAACU,KAAK,EACjBV,WAAW,CAACI,EAAE,EACdpB,QAAQ,CAACoB,EAAE,EACXpB,QAAQ,CAACE,GAAG,EACZF,QAAQ,CAAC2B,GAAG,EACZJ,UACF,CAAC,CACEK,IAAI,CAACV,OAAO,CAAC,CACb5C,KAAK,CAAC6C,MAAM,CAAC;cAClB;YACF,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIT,QAAQ,CAAC7C,OAAO,KAAK,6BAA6B,EAAE;QAC7D8B,+BAA+B,CAACe,QAAQ,CAACtC,OAAO,CAAC;MACnD,CAAC,MAAM,IAAIsC,QAAQ,CAAC7C,OAAO,KAAK,mBAAmB,EAAE;QACnD+B,qBAAqB,CAAC,CAAC;MACzB,CAAC,MAAM,IAAIc,QAAQ,CAAC7C,OAAO,KAAK,wBAAwB,EAAE;QACxDkC,0BAA0B,CAAC,CAAC;MAC9B;IACF,CAAC,CAAC,OAAOvB,KAAK,EAAE;MACd,IAAIqD,YAAY,GAAG,sBAAsB;MACzC,IAAIrD,KAAK,YAAYsD,KAAK,EAAE;QAC1BD,YAAY,GAAGrD,KAAK,CAACX,OAAO;MAC9B;MACAb,OAAO,CACL,IAAIvB,aAAa,CAAC;QAChBkC,IAAI,EAAElC,aAAa,CAACoF,kBAAkB;QACtChD,OAAO,EAAEgE;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAME,aAAa,GAAGA,CAAA,KAAM;IAC1B/E,OAAO,CACL,IAAIvB,aAAa,CAAC;MAChBkC,IAAI,EAAElC,aAAa,CAACuG,kBAAkB;MACtCnE,OAAO,EAAEpC,aAAa,CAACwG;IACzB,CAAC,CACH,CAAC;EACH,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;IAAA,IAAAC,oBAAA;IACpC,CAAAA,oBAAA,GAAAhF,UAAU,CAACiC,OAAO,cAAA+C,oBAAA,eAAlBA,oBAAA,CAAoBC,MAAM,CAAC,CAAC;EAC9B,CAAC;EAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAI7F,YAAY,KAAK,IAAI,IAAIF,wBAAwB,IAAI,IAAI,EAAE;MAC7D,OAAOW,MAAM,iBAAItC,KAAA,CAAA2H,aAAA,CAACnH,OAAO,MAAE,CAAC;IAC9B;IAEA,MAAM;MAAEoH,WAAW;MAAEC;IAAa,CAAC,GAAGnH,6BAA6B,CAAC;MAClEwC,OAAO,EAAET,YAAY;MACrBgB,OAAO,EAAE5B;IACX,CAAC,CAAC;IAEF,oBACE7B,KAAA,CAAA2H,aAAA,CAACtH,YAAY;MAAC4B,KAAK,EAAEA;IAAM,gBACzBjC,KAAA,CAAA2H,aAAA,CAACpH,OAAO;MACNuH,MAAM,EAAE;QAAEC,GAAG,EAAEtH,WAAW,CAACkB,wBAAwB;MAAE,CAAE;MACvDqG,qCAAqC,EACnC1H,QAAQ,CAAC8C,EAAE,KAAK,KAAK,GAAGyE,YAAY,GAAGI,SACxC;MACDC,kBAAkB,EAAE5H,QAAQ,CAAC8C,EAAE,KAAK,KAAK,GAAG6E,SAAS,GAAGL,WAAY;MACpEO,SAAS,EAAEvC,eAAgB;MAC3BvD,OAAO,EAAE+E,aAAc;MACvBgB,WAAW,EAAEhB,aAAc;MAC3BiB,kBAAkB,EAAE,IAAK;MACzBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAE7C,mBAAoB;MAC5B8C,GAAG,EAAEhG;IAAW,CACjB,CACW,CAAC;EAEnB,CAAC;EAED,oBACExC,KAAA,CAAA2H,aAAA,CAACvH,KAAK;IACJqI,aAAa,EAAC,OAAO;IACrBC,WAAW,EAAE,KAAM;IACnBC,OAAO,EAAEhG,KAAM;IACfiG,cAAc,EAAErB;EAAwB,GAEvC5E,KAAK,GAAG+E,aAAa,CAAC,CAAC,GAAG,IACtB,CAAC;AAEZ,CAAC;AAED,eAAejG,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","fetchCurrentLocation","OkHiException","start","sv","getApplicationConfiguration","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","openAppSettings","openProtectedAppsSettings","requestBackgroundLocationPermission","requestLocationPermission","OkHiNativeModule","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","startMessage","mode","ready","setReady","androidAlwaysRequested","startOkHiLocationManager","appConfiguration","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","OS","Version","setItem","JSON","stringify","payload","url","catch","console","error","runWebViewCallback","result","_webViewRef$current","level","getLocationAccuracyLevel","callbackResult","update","locationAccuracyLevel","jsonUpdate","replace","jsString","current","injectJavaScript","handleAndroidRequestLocationPermission","_isLocationPermissionGranted","_isBackgroundLocationPermissionGranted","_locationAccuracyLevel","handleIOSRequestLocationPermission","handleRequestLocationPermission","handleOpenAppSettings","granted","err","handleFetchCurrentLocation","location","_webViewRef$current2","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current3","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","fcmPushNotificationToken","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current4","goBack","renderContent","createElement","jsAfterLoad","jsBeforeLoad","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","animationType","transparent","visible","onRequestClose"],"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":[]}
|
package/package.json
CHANGED
|
@@ -50,7 +50,7 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
|
|
|
50
50
|
const androidAlwaysRequested = useRef(false);
|
|
51
51
|
|
|
52
52
|
useEffect(() => {
|
|
53
|
-
if (launch) {
|
|
53
|
+
if (typeof launch === 'boolean') {
|
|
54
54
|
setReady(launch);
|
|
55
55
|
}
|
|
56
56
|
}, [launch]);
|
|
@@ -244,7 +244,6 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
|
|
|
244
244
|
const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {
|
|
245
245
|
try {
|
|
246
246
|
const response: OkHiLocationManagerResponse = JSON.parse(data);
|
|
247
|
-
console.log(response);
|
|
248
247
|
if (response.message === 'fatal_exit') {
|
|
249
248
|
//TODO: figure out bad phone number code
|
|
250
249
|
onError(
|
package/src/OkCollect/app.json
CHANGED