react-native-okhi 1.2.3-beta.4 → 1.2.3-beta.6

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.
@@ -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 => {
@@ -64,6 +66,7 @@ const OkHiLocationManager = props => {
64
66
  if (token !== null && applicationConfiguration !== null) {
65
67
  // TODO: handle faliure
66
68
  (0, _Util.generateStartDataPayload)(props, token, applicationConfiguration).then(startPayload => {
69
+ console.log('>>', JSON.stringify(startPayload));
67
70
  setStartPaylaod(startPayload);
68
71
  if (_reactNative.Platform.OS === 'android' && _reactNative.Platform.Version > 25) {
69
72
  _OkHiNativeModule.OkHiNativeModule.setItem('okcollect-launch-payload', JSON.stringify({
@@ -75,6 +78,24 @@ const OkHiLocationManager = props => {
75
78
  }).catch(console.error);
76
79
  }
77
80
  }, [applicationConfiguration, props, token]);
81
+ (0, _react.useEffect)(() => {
82
+ if (launch) {
83
+ if (typeof (config === null || config === void 0 ? void 0 : config.permissionsOnboarding) === 'boolean' && !config.permissionsOnboarding) {
84
+ (0, _OkCore.isBackgroundLocationPermissionGranted)().then(result => {
85
+ if (!result) {
86
+ onError(new _OkHiException.OkHiException({
87
+ code: _OkHiException.OkHiException.PERMISSION_DENIED_CODE,
88
+ message: 'Always location permission must be granted to launch OkCollect'
89
+ }));
90
+ } else {
91
+ setReady(true);
92
+ }
93
+ });
94
+ } else {
95
+ setReady(true);
96
+ }
97
+ }
98
+ }, [launch, config === null || config === void 0 ? void 0 : config.permissionsOnboarding]);
78
99
  const runWebViewCallback = value => {
79
100
  if (webViewRef.current) {
80
101
  const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === "function") { runOkHiLocationManagerCallback("${value}") } })()`;
@@ -83,13 +104,13 @@ const OkHiLocationManager = props => {
83
104
  };
84
105
  const handleAndroidRequestLocationPermission = async level => {
85
106
  // using request for android because we can programmatically turn on location services, unlike yucky ios
86
- (0, _OkCore.request)(level, null, (status, error) => {
87
- if (error) {
107
+ (0, _OkCore.request)(level, null, async (_, error) => {
108
+ if (!error) {
109
+ const isAlwaysGranted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
110
+ const isWhenInUseGranted = await (0, _OkCore.isLocationPermissionGranted)();
111
+ runWebViewCallback(isAlwaysGranted ? 'always' : isWhenInUseGranted ? 'whenInUse' : 'denied');
112
+ } else {
88
113
  onError(error);
89
- } else if (level === 'whenInUse' && status === 'authorizedWhenInUse') {
90
- runWebViewCallback(level);
91
- } else if (level === 'always' && status === 'authorizedAlways') {
92
- runWebViewCallback(level);
93
114
  }
94
115
  });
95
116
  };
@@ -106,8 +127,9 @@ const OkHiLocationManager = props => {
106
127
  const isServiceAvailable = await (0, _OkCore.isLocationServicesEnabled)();
107
128
  if (!isServiceAvailable) {
108
129
  onError(serviceError);
109
- } else if (level === 'whenInUse' && (await (0, _OkCore.requestLocationPermission)())) {
110
- runWebViewCallback(level);
130
+ } else if (level === 'whenInUse') {
131
+ const result = await (0, _OkCore.requestLocationPermission)();
132
+ runWebViewCallback(result ? level : 'denied');
111
133
  } else if (level === 'always') {
112
134
  const granted = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
113
135
  if (granted) {
@@ -230,9 +252,9 @@ const OkHiLocationManager = props => {
230
252
  return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
231
253
  animationType: "slide",
232
254
  transparent: false,
233
- visible: launch,
255
+ visible: ready,
234
256
  onRequestClose: handleModalRequestClose
235
- }, launch ? renderContent() : null);
257
+ }, ready ? renderContent() : null);
236
258
  };
237
259
  exports.OkHiLocationManager = OkHiLocationManager;
238
260
  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","runWebViewCallback","value","current","jsString","injectJavaScript","handleAndroidRequestLocationPermission","level","request","status","handleIOSRequestLocationPermission","serviceError","SERVICE_UNAVAILABLE_CODE","unknownError","UNKNOWN_ERROR_CODE","isServiceAvailable","isLocationServicesEnabled","requestLocationPermission","granted","isBackgroundLocationPermissionGranted","openAppSettings","handleRequestLocationPermission","_ref","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 isLocationServicesEnabled,\n openAppSettings,\n openProtectedAppsSettings,\n request,\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 } = 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 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 // using request for android because we can programmatically turn on location services, unlike yucky ios\n request(level, null, (status, error) => {\n if (error) {\n onError(error);\n } else if (level === 'whenInUse' && status === 'authorizedWhenInUse') {\n runWebViewCallback(level);\n } else if (level === 'always' && status === 'authorizedAlways') {\n runWebViewCallback(level);\n }\n });\n };\n\n const handleIOSRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n const serviceError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Location service is currently not available. Please enable in app settings',\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 onError(serviceError);\n } else if (level === 'whenInUse' && (await requestLocationPermission())) {\n runWebViewCallback(level);\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 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: '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 }\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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAMA,IAAAI,KAAA,GAAAJ,OAAA;AAMA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAEA,IAAAO,SAAA,GAAAP,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AASA,IAAAS,iBAAA,GAAAT,OAAA;AAAuD,SAAAU,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAZ,wBAAAgB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEvD;AACA;AACA;AACO,MAAMW,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAgB,IAAI,CAAC;EACvD,MAAM,CAACC,wBAAwB,EAAEC,2BAA2B,CAAC,GAC3D,IAAAF,eAAQ,EAA+B,IAAI,CAAC;EAC9C,MAAM,CAACG,YAAY,EAAEC,eAAe,CAAC,GACnC,IAAAJ,eAAQ,EAA6C,IAAI,CAAC;EAC5D,MAAMK,YAAY,GAAG;IAAEC,IAAI,EAAE;EAAE,CAAC;EAChC,MAAMC,KAAK,GAAGV,KAAK,CAACU,KAAK,GACrB;IAAE,GAAGV,KAAK,CAACU,KAAK;IAAE,GAAGF;EAAa,CAAC,GACnCA,YAAY;EAEhB,MAAM;IAAEG,IAAI;IAAEC,SAAS;IAAEC,cAAc;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGhB,KAAK;EAC1E,MAAMiB,UAAU,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAC/C,MAAMC,YAAY,GAChBnB,KAAK,CAACoB,IAAI,KAAK,QAAQ,GAAG,WAAW,GAAG,iBAAiB;EAE3D,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIjB,wBAAwB,IAAI,IAAI,IAAIH,KAAK,IAAI,IAAI,IAAIU,IAAI,CAACW,KAAK,EAAE;MACnE,IAAAC,mCAA2B,EAAC,CAAC,CAC1BC,IAAI,CAAEC,MAAM,IAAK;QAChB,IAAI,CAACA,MAAM,IAAIT,MAAM,EAAE;UACrBF,OAAO,CACL,IAAIY,4BAAa,CAAC;YAChBC,IAAI,EAAED,4BAAa,CAACE,iBAAiB;YACrCC,OAAO,EAAEH,4BAAa,CAACI;UACzB,CAAC,CACH,CAAC;QACH,CAAC,MAAM,IAAIL,MAAM,EAAE;UACjBpB,2BAA2B,CAACoB,MAAM,CAAC;UACnC,MAAMM,IAAI,GAAG,IAAIC,kBAAQ,CAAC,CAAC;UAC3BD,IAAI,CACDE,8BAA8B,CAACtB,IAAI,CAACW,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAEG,MAAM,CAAC,CAC9DD,IAAI,CAACtB,QAAQ,CAAC,CACdgC,KAAK,CAACpB,OAAO,CAAC;QACnB;MACF,CAAC,CAAC,CACDoB,KAAK,CAAEC,KAAK,IAAK;QAChB,IAAInB,MAAM,EAAE;UACVF,OAAO,CAACqB,KAAK,CAAC;QAChB;MACF,CAAC,CAAC;IACN;EACF,CAAC,EAAE,CAACrB,OAAO,EAAEH,IAAI,CAACW,KAAK,EAAEN,MAAM,EAAEZ,wBAAwB,EAAEH,KAAK,CAAC,CAAC;EAElE,IAAAoB,gBAAS,EAAC,MAAM;IACd,IAAIpB,KAAK,KAAK,IAAI,IAAIG,wBAAwB,KAAK,IAAI,EAAE;MACvD;MACA,IAAAgC,8BAAwB,EAACpC,KAAK,EAAEC,KAAK,EAAEG,wBAAwB,CAAC,CAC7DoB,IAAI,CAAElB,YAAY,IAAK;QACtBC,eAAe,CAACD,YAAY,CAAC;QAC7B,IAAI+B,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACE,OAAO,GAAG,EAAE,EAAE;UACtDC,kCAAgB,CAACC,OAAO,CACtB,0BAA0B,EAC1BC,IAAI,CAACC,SAAS,CAAC;YACbd,OAAO,EAAEV,YAAY;YACrByB,OAAO,EAAEtC,YAAY;YACrBuC,GAAG,EAAE,IAAAC,iBAAW,EAAC1C,wBAAwB;UAC3C,CAAC,CACH,CAAC,CAAC8B,KAAK,CAACa,OAAO,CAACZ,KAAK,CAAC;QACxB;MACF,CAAC,CAAC,CACDD,KAAK,CAACa,OAAO,CAACZ,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAAC/B,wBAAwB,EAAEJ,KAAK,EAAEC,KAAK,CAAC,CAAC;EAE5C,MAAM+C,kBAAkB,GAAIC,KAAa,IAAK;IAC5C,IAAIhC,UAAU,CAACiC,OAAO,EAAE;MACtB,MAAMC,QAAQ,GAAI,6GAA4GF,KAAM,WAAU;MAC9IhC,UAAU,CAACiC,OAAO,CAACE,gBAAgB,CAACD,QAAQ,CAAC;IAC/C;EACF,CAAC;EAED,MAAME,sCAAsC,GAAG,MAC7CC,KAA6B,IAC1B;IACH;IACA,IAAAC,eAAO,EAACD,KAAK,EAAE,IAAI,EAAE,CAACE,MAAM,EAAErB,KAAK,KAAK;MACtC,IAAIA,KAAK,EAAE;QACTrB,OAAO,CAACqB,KAAK,CAAC;MAChB,CAAC,MAAM,IAAImB,KAAK,KAAK,WAAW,IAAIE,MAAM,KAAK,qBAAqB,EAAE;QACpER,kBAAkB,CAACM,KAAK,CAAC;MAC3B,CAAC,MAAM,IAAIA,KAAK,KAAK,QAAQ,IAAIE,MAAM,KAAK,kBAAkB,EAAE;QAC9DR,kBAAkB,CAACM,KAAK,CAAC;MAC3B;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAMG,kCAAkC,GAAG,MACzCH,KAA6B,IAC1B;IACH,MAAMI,YAAY,GAAG,IAAIhC,4BAAa,CAAC;MACrCC,IAAI,EAAED,4BAAa,CAACiC,wBAAwB;MAC5C9B,OAAO,EACL;IACJ,CAAC,CAAC;IACF,MAAM+B,YAAY,GAAG,IAAIlC,4BAAa,CAAC;MACrCC,IAAI,EAAED,4BAAa,CAACmC,kBAAkB;MACtChC,OAAO,EACL;IACJ,CAAC,CAAC;IACF,IAAI;MACF,MAAMiC,kBAAkB,GAAG,MAAM,IAAAC,iCAAyB,EAAC,CAAC;MAC5D,IAAI,CAACD,kBAAkB,EAAE;QACvBhD,OAAO,CAAC4C,YAAY,CAAC;MACvB,CAAC,MAAM,IAAIJ,KAAK,KAAK,WAAW,KAAK,MAAM,IAAAU,iCAAyB,EAAC,CAAC,CAAC,EAAE;QACvEhB,kBAAkB,CAACM,KAAK,CAAC;MAC3B,CAAC,MAAM,IAAIA,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAMW,OAAO,GAAG,MAAM,IAAAC,6CAAqC,EAAC,CAAC;QAC7D,IAAID,OAAO,EAAE;UACXjB,kBAAkB,CAACM,KAAK,CAAC;QAC3B,CAAC,MAAM;UACL,IAAAa,uBAAe,EAAC,CAAC;QACnB;MACF;IACF,CAAC,CAAC,OAAOhC,KAAK,EAAE;MACdrB,OAAO,CAAC8C,YAAY,CAAC;IACvB;EACF,CAAC;EAED,MAAMQ,+BAA+B,GAAG,MAAAC,IAAA,IAIlC;IAAA,IAJyC;MAC7Cf;IAGF,CAAC,GAAAe,IAAA;IACC,IAAIhC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7Be,sCAAsC,CAACC,KAAK,CAAC;IAC/C,CAAC,MAAM,IAAIjB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MAChCmB,kCAAkC,CAACH,KAAK,CAAC;IAC3C;EACF,CAAC;EAED,MAAMgB,eAAe,GAAGC,KAAA,IAAoD;IAAA,IAAnD;MAAEC,WAAW,EAAE;QAAEC;MAAK;IAAuB,CAAC,GAAAF,KAAA;IACrE,IAAI;MACF,MAAMG,QAAqC,GAAGhC,IAAI,CAACiC,KAAK,CAACF,IAAI,CAAC;MAC9D,IAAIC,QAAQ,CAAC7C,OAAO,KAAK,YAAY,EAAE;QACrCf,OAAO,CACL,IAAIY,4BAAa,CAAC;UAChBC,IAAI,EAAED,4BAAa,CAACmC,kBAAkB;UACtChC,OAAO,EAAE;QACX,CAAC,CACH,CAAC;MACH,CAAC,MAAM,IAAI6C,QAAQ,CAAC7C,OAAO,KAAK,UAAU,EAAE;QAC1ChB,cAAc,CAAC,CAAC;MAClB,CAAC,MAAM,IAAI6D,QAAQ,CAAC7C,OAAO,KAAK,+BAA+B,EAAE;QAC/D,IAAA+C,iCAAyB,EAAC,CAAC;MAC7B,CAAC,MAAM,IACLF,QAAQ,CAAC7C,OAAO,KAAK,kBAAkB,IACvC6C,QAAQ,CAAC7C,OAAO,KAAK,mBAAmB,IACxC6C,QAAQ,CAAC7C,OAAO,KAAK,kBAAkB,EACvC;QACAjB,SAAS,CAAC;UACRD,IAAI,EAAE;YACJ,GAAG+D,QAAQ,CAAC9B,OAAO,CAACjC,IAAI;YACxBkE,wBAAwB,EAAElE,IAAI,CAACkE;UACjC,CAAC;UACDC,QAAQ,EAAE,IAAAC,uBAAiB,EAACL,QAAQ,CAAC9B,OAAO,CAACkC,QAAQ,CAAC;UACtDE,iBAAiB,EAAE,SAAAA,CAAUvD,MAAmC,EAAE;YAChE,MAAMwD,WAAW,GAAG;cAAE,GAAG,IAAI,CAACtE;YAAK,CAAC;YACpC,MAAMmE,QAAQ,GAAG;cAAE,GAAG,IAAI,CAACA;YAAS,CAAC;YACrC,OAAO,IAAII,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;cACtC,IAAI,CAACN,QAAQ,CAACO,EAAE,EAAE;gBAChBD,MAAM,CACJ,IAAI1D,4BAAa,CAAC;kBAChBC,IAAI,EAAED,4BAAa,CAAC4D,gBAAgB;kBACpCzD,OAAO,EAAE;gBACX,CAAC,CACH,CAAC;cACH,CAAC,MAAM;gBACL,IAAA0D,eAAE,EACAN,WAAW,CAAC3D,KAAK,EACjBwD,QAAQ,CAACO,EAAE,EACXP,QAAQ,CAACU,GAAG,EACZV,QAAQ,CAACW,GAAG,EACZhE,MAAM,EACNwD,WAAW,CAACJ,wBACd,CAAC,CACErD,IAAI,CAAC2D,OAAO,CAAC,CACbjD,KAAK,CAACkD,MAAM,CAAC;cAClB;YACF,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIV,QAAQ,CAAC7C,OAAO,KAAK,6BAA6B,EAAE;QAC7DuC,+BAA+B,CAACM,QAAQ,CAAC9B,OAAO,CAAC;MACnD;IACF,CAAC,CAAC,OAAOT,KAAK,EAAE;MACd,IAAIuD,YAAY,GAAG,sBAAsB;MACzC,IAAIvD,KAAK,YAAYwD,KAAK,EAAE;QAC1BD,YAAY,GAAGvD,KAAK,CAACN,OAAO;MAC9B;MACAf,OAAO,CACL,IAAIY,4BAAa,CAAC;QAChBC,IAAI,EAAED,4BAAa,CAACmC,kBAAkB;QACtChC,OAAO,EAAE6D;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAME,aAAa,GAAGA,CAAA,KAAM;IAC1B9E,OAAO,CACL,IAAIY,4BAAa,CAAC;MAChBC,IAAI,EAAED,4BAAa,CAACmE,kBAAkB;MACtChE,OAAO,EAAEH,4BAAa,CAACoE;IACzB,CAAC,CACH,CAAC;EACH,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;IAAA,IAAAC,mBAAA;IACpC,CAAAA,mBAAA,GAAA/E,UAAU,CAACiC,OAAO,cAAA8C,mBAAA,uBAAlBA,mBAAA,CAAoBC,MAAM,CAAC,CAAC;EAC9B,CAAC;EAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAIjG,KAAK,KAAK,IAAI,IAAIG,wBAAwB,IAAI,IAAI,EAAE;MACtD,OAAOW,MAAM,iBAAIlD,MAAA,CAAAmB,OAAA,CAAAmH,aAAA,CAACjI,QAAA,CAAAkI,OAAO,MAAE,CAAC;IAC9B;IAEA,IAAI9F,YAAY,KAAK,IAAI,EAAE;MACzB,OAAOS,MAAM,iBAAIlD,MAAA,CAAAmB,OAAA,CAAAmH,aAAA,CAACjI,QAAA,CAAAkI,OAAO,MAAE,CAAC;IAC9B;IAEA,MAAM;MAAEC,WAAW;MAAEC;IAAa,CAAC,GAAG,IAAAC,mCAA6B,EAAC;MAClE1E,OAAO,EAAEV,YAAY;MACrByB,OAAO,EAAEtC;IACX,CAAC,CAAC;IAEF,oBACEzC,MAAA,CAAAmB,OAAA,CAAAmH,aAAA,CAACnI,YAAA,CAAAwI,YAAY;MAAC9F,KAAK,EAAEA;IAAM,gBACzB7C,MAAA,CAAAmB,OAAA,CAAAmH,aAAA,CAAClI,mBAAA,CAAAwI,OAAO;MACNC,MAAM,EAAE;QAAEC,GAAG,EAAE,IAAA7D,iBAAW,EAAC1C,wBAAwB;MAAE,CAAE;MACvDwG,qCAAqC,EACnCvE,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAGgE,YAAY,GAAGO,SACxC;MACDC,kBAAkB,EAAEzE,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAGuE,SAAS,GAAGR,WAAY;MACpEU,SAAS,EAAEzC,eAAgB;MAC3BxD,OAAO,EAAE8E,aAAc;MACvBoB,WAAW,EAAEpB,aAAc;MAC3BqB,kBAAkB,EAAE,IAAK;MACzBC,mCAAmC,EAAE,IAAK;MAC1CC,GAAG,EAAElG;IAAW,CACjB,CACW,CAAC;EAEnB,CAAC;EAED,oBACEpD,MAAA,CAAAmB,OAAA,CAAAmH,aAAA,CAACnI,YAAA,CAAAoJ,KAAK;IACJC,aAAa,EAAC,OAAO;IACrBC,WAAW,EAAE,KAAM;IACnBC,OAAO,EAAEvG,MAAO;IAChBwG,cAAc,EAAEzB;EAAwB,GAEvC/E,MAAM,GAAGkF,aAAa,CAAC,CAAC,GAAG,IACvB,CAAC;AAEZ,CAAC;AAACuB,OAAA,CAAA1H,mBAAA,GAAAA,mBAAA;AAAA,IAAA2H,QAAA,GAEa3H,mBAAmB;AAAA0H,OAAA,CAAAzI,OAAA,GAAA0I,QAAA"}
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","console","log","JSON","stringify","Platform","OS","Version","OkHiNativeModule","setItem","payload","url","getFrameUrl","permissionsOnboarding","isBackgroundLocationPermissionGranted","result","PERMISSION_DENIED_CODE","runWebViewCallback","value","current","jsString","injectJavaScript","handleAndroidRequestLocationPermission","level","request","_","isAlwaysGranted","isWhenInUseGranted","isLocationPermissionGranted","handleIOSRequestLocationPermission","serviceError","SERVICE_UNAVAILABLE_CODE","unknownError","UNKNOWN_ERROR_CODE","isServiceAvailable","isLocationServicesEnabled","requestLocationPermission","granted","openAppSettings","handleRequestLocationPermission","_ref","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 request,\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 console.log('>>', JSON.stringify(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 }\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 // using request for android because we can programmatically turn on location services, unlike yucky ios\n request(level, null, async (_, error) => {\n if (!error) {\n const isAlwaysGranted = await isBackgroundLocationPermissionGranted();\n const isWhenInUseGranted = await isLocationPermissionGranted();\n runWebViewCallback(\n isAlwaysGranted\n ? 'always'\n : isWhenInUseGranted\n ? 'whenInUse'\n : 'denied'\n );\n } else {\n onError(error);\n }\n });\n };\n\n const handleIOSRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n const serviceError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Location service is currently not available. Please enable in app settings',\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 onError(serviceError);\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 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: '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 }\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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"}
@@ -81,8 +81,9 @@ const generateStartDataPayload = async (props, authToken, applicationConfigurati
81
81
  };
82
82
  if (_reactNative.Platform.OS === 'ios') {
83
83
  const status = await _OkHiNativeModule.OkHiNativeModule.fetchIOSLocationPermissionStatus();
84
+ const locationPermission = status === 'notDetermined' ? 'notDetermined' : status === 'authorizedWhenInUse' ? 'whenInUse' : status === 'authorizedAlways' ? 'always' : 'denied';
84
85
  payload.context.permissions = {
85
- location: status === 'authorizedWhenInUse' ? 'whenInUse' : status === 'authorizedAlways' || status === 'authorized' ? 'always' : 'denied'
86
+ location: locationPermission
86
87
  };
87
88
  if (status === 'authorized' || status === 'authorizedWhenInUse' || status === 'authorizedAlways') {
88
89
  const location = await fetchCurrentLocation();
@@ -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","_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","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","isLocationPermissionGranted","error","console","log","hasBackgroundLocationPermission","isBackgroundLocationPermissionGranted","OkHiException","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","JSON","stringify","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","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 payload.context.permissions = {\n location:\n status === 'authorizedWhenInUse'\n ? 'whenInUse'\n : status === 'authorizedAlways' || status === 'authorized'\n ? 'always'\n : 'denied',\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 console.log(JSON.stringify(payload));\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","JSON","stringify","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","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 console.log(JSON.stringify(payload));\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,4 +1,4 @@
1
1
  {
2
2
  "name": "okhiWebReactNative",
3
- "version": "1.2.3-beta.4"
3
+ "version": "1.2.3-beta.6"
4
4
  }
@@ -6,7 +6,7 @@ import { getFrameUrl, generateJavaScriptStartScript, generateStartDataPayload, p
6
6
  import { OkHiException } from '../OkCore/OkHiException';
7
7
  import { OkHiAuth } from '../OkCore/OkHiAuth';
8
8
  import { start as sv } from '../OkVerify';
9
- import { getApplicationConfiguration, isBackgroundLocationPermissionGranted, isLocationServicesEnabled, openAppSettings, openProtectedAppsSettings, request, requestLocationPermission } from '../OkCore';
9
+ import { getApplicationConfiguration, isBackgroundLocationPermissionGranted, isLocationPermissionGranted, isLocationServicesEnabled, openAppSettings, openProtectedAppsSettings, request, requestLocationPermission } from '../OkCore';
10
10
  import { OkHiNativeModule } from '../OkHiNativeModule';
11
11
 
12
12
  /**
@@ -29,10 +29,12 @@ export const OkHiLocationManager = props => {
29
29
  onCloseRequest,
30
30
  onError,
31
31
  loader,
32
- launch
32
+ launch,
33
+ config
33
34
  } = props;
34
35
  const webViewRef = useRef(null);
35
36
  const startMessage = props.mode === 'create' ? 'start_app' : 'select_location';
37
+ const [ready, setReady] = useState(false);
36
38
  useEffect(() => {
37
39
  if (applicationConfiguration == null && token == null && user.phone) {
38
40
  getApplicationConfiguration().then(config => {
@@ -57,6 +59,7 @@ export const OkHiLocationManager = props => {
57
59
  if (token !== null && applicationConfiguration !== null) {
58
60
  // TODO: handle faliure
59
61
  generateStartDataPayload(props, token, applicationConfiguration).then(startPayload => {
62
+ console.log('>>', JSON.stringify(startPayload));
60
63
  setStartPaylaod(startPayload);
61
64
  if (Platform.OS === 'android' && Platform.Version > 25) {
62
65
  OkHiNativeModule.setItem('okcollect-launch-payload', JSON.stringify({
@@ -68,6 +71,24 @@ export const OkHiLocationManager = props => {
68
71
  }).catch(console.error);
69
72
  }
70
73
  }, [applicationConfiguration, props, token]);
74
+ useEffect(() => {
75
+ if (launch) {
76
+ if (typeof (config === null || config === void 0 ? void 0 : config.permissionsOnboarding) === 'boolean' && !config.permissionsOnboarding) {
77
+ isBackgroundLocationPermissionGranted().then(result => {
78
+ if (!result) {
79
+ onError(new OkHiException({
80
+ code: OkHiException.PERMISSION_DENIED_CODE,
81
+ message: 'Always location permission must be granted to launch OkCollect'
82
+ }));
83
+ } else {
84
+ setReady(true);
85
+ }
86
+ });
87
+ } else {
88
+ setReady(true);
89
+ }
90
+ }
91
+ }, [launch, config === null || config === void 0 ? void 0 : config.permissionsOnboarding]);
71
92
  const runWebViewCallback = value => {
72
93
  if (webViewRef.current) {
73
94
  const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === "function") { runOkHiLocationManagerCallback("${value}") } })()`;
@@ -76,13 +97,13 @@ export const OkHiLocationManager = props => {
76
97
  };
77
98
  const handleAndroidRequestLocationPermission = async level => {
78
99
  // using request for android because we can programmatically turn on location services, unlike yucky ios
79
- request(level, null, (status, error) => {
80
- if (error) {
100
+ request(level, null, async (_, error) => {
101
+ if (!error) {
102
+ const isAlwaysGranted = await isBackgroundLocationPermissionGranted();
103
+ const isWhenInUseGranted = await isLocationPermissionGranted();
104
+ runWebViewCallback(isAlwaysGranted ? 'always' : isWhenInUseGranted ? 'whenInUse' : 'denied');
105
+ } else {
81
106
  onError(error);
82
- } else if (level === 'whenInUse' && status === 'authorizedWhenInUse') {
83
- runWebViewCallback(level);
84
- } else if (level === 'always' && status === 'authorizedAlways') {
85
- runWebViewCallback(level);
86
107
  }
87
108
  });
88
109
  };
@@ -99,8 +120,9 @@ export const OkHiLocationManager = props => {
99
120
  const isServiceAvailable = await isLocationServicesEnabled();
100
121
  if (!isServiceAvailable) {
101
122
  onError(serviceError);
102
- } else if (level === 'whenInUse' && (await requestLocationPermission())) {
103
- runWebViewCallback(level);
123
+ } else if (level === 'whenInUse') {
124
+ const result = await requestLocationPermission();
125
+ runWebViewCallback(result ? level : 'denied');
104
126
  } else if (level === 'always') {
105
127
  const granted = await isBackgroundLocationPermissionGranted();
106
128
  if (granted) {
@@ -223,9 +245,9 @@ export const OkHiLocationManager = props => {
223
245
  return /*#__PURE__*/React.createElement(Modal, {
224
246
  animationType: "slide",
225
247
  transparent: false,
226
- visible: launch,
248
+ visible: ready,
227
249
  onRequestClose: handleModalRequestClose
228
- }, launch ? renderContent() : null);
250
+ }, ready ? renderContent() : null);
229
251
  };
230
252
  export default OkHiLocationManager;
231
253
  //# sourceMappingURL=OkHiLocationManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","OkHiException","OkHiAuth","start","sv","getApplicationConfiguration","isBackgroundLocationPermissionGranted","isLocationServicesEnabled","openAppSettings","openProtectedAppsSettings","request","requestLocationPermission","OkHiNativeModule","OkHiLocationManager","props","token","setToken","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","startMessage","mode","phone","then","config","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","anonymousSignInWithPhoneNumber","catch","error","OS","Version","setItem","JSON","stringify","payload","url","console","runWebViewCallback","value","current","jsString","injectJavaScript","handleAndroidRequestLocationPermission","level","status","handleIOSRequestLocationPermission","serviceError","SERVICE_UNAVAILABLE_CODE","unknownError","UNKNOWN_ERROR_CODE","isServiceAvailable","granted","handleRequestLocationPermission","_ref","handleOnMessage","_ref2","nativeEvent","data","response","parse","fcmPushNotificationToken","location","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current","goBack","renderContent","createElement","jsAfterLoad","jsBeforeLoad","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","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} 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 isLocationServicesEnabled,\n openAppSettings,\n openProtectedAppsSettings,\n request,\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 } = 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 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 // using request for android because we can programmatically turn on location services, unlike yucky ios\n request(level, null, (status, error) => {\n if (error) {\n onError(error);\n } else if (level === 'whenInUse' && status === 'authorizedWhenInUse') {\n runWebViewCallback(level);\n } else if (level === 'always' && status === 'authorizedAlways') {\n runWebViewCallback(level);\n }\n });\n };\n\n const handleIOSRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n const serviceError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Location service is currently not available. Please enable in app settings',\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 onError(serviceError);\n } else if (level === 'whenInUse' && (await requestLocationPermission())) {\n runWebViewCallback(level);\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 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: '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 }\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","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","OkHiException","OkHiAuth","start","sv","getApplicationConfiguration","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","isLocationServicesEnabled","openAppSettings","openProtectedAppsSettings","request","requestLocationPermission","OkHiNativeModule","OkHiLocationManager","props","token","setToken","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","config","webViewRef","startMessage","mode","ready","setReady","phone","then","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","anonymousSignInWithPhoneNumber","catch","error","console","log","JSON","stringify","OS","Version","setItem","payload","url","permissionsOnboarding","result","PERMISSION_DENIED_CODE","runWebViewCallback","value","current","jsString","injectJavaScript","handleAndroidRequestLocationPermission","level","_","isAlwaysGranted","isWhenInUseGranted","handleIOSRequestLocationPermission","serviceError","SERVICE_UNAVAILABLE_CODE","unknownError","UNKNOWN_ERROR_CODE","isServiceAvailable","granted","handleRequestLocationPermission","_ref","handleOnMessage","_ref2","nativeEvent","data","response","parse","fcmPushNotificationToken","location","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current","goBack","renderContent","createElement","jsAfterLoad","jsBeforeLoad","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","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} 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 request,\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 console.log('>>', JSON.stringify(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 }\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 // using request for android because we can programmatically turn on location services, unlike yucky ios\n request(level, null, async (_, error) => {\n if (!error) {\n const isAlwaysGranted = await isBackgroundLocationPermissionGranted();\n const isWhenInUseGranted = await isLocationPermissionGranted();\n runWebViewCallback(\n isAlwaysGranted\n ? 'always'\n : isWhenInUseGranted\n ? 'whenInUse'\n : 'denied'\n );\n } else {\n onError(error);\n }\n });\n };\n\n const handleIOSRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n const serviceError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Location service is currently not available. Please enable in app settings',\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 onError(serviceError);\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 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: '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 }\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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"}
@@ -74,8 +74,9 @@ export const generateStartDataPayload = async (props, authToken, applicationConf
74
74
  };
75
75
  if (Platform.OS === 'ios') {
76
76
  const status = await OkHiNativeModule.fetchIOSLocationPermissionStatus();
77
+ const locationPermission = status === 'notDetermined' ? 'notDetermined' : status === 'authorizedWhenInUse' ? 'whenInUse' : status === 'authorizedAlways' ? 'always' : 'denied';
77
78
  payload.context.permissions = {
78
- location: status === 'authorizedWhenInUse' ? 'whenInUse' : status === 'authorizedAlways' || status === 'authorized' ? 'always' : 'denied'
79
+ location: locationPermission
79
80
  };
80
81
  if (status === 'authorized' || status === 'authorizedWhenInUse' || status === 'authorizedAlways') {
81
82
  const location = await fetchCurrentLocation();
@@ -1 +1 @@
1
- {"version":3,"names":["canOpenProtectedAppsSettings","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","OkHiException","OkHiMode","manifest","Platform","OkHiNativeModule","fetchCurrentLocation","result","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","device","config","streetView","backgroundColor","visible","addressTypes","home","work","protectedApps","OS","permissionsOnboarding","status","fetchIOSLocationPermissionStatus","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","error","console","log","hasBackgroundLocationPermission","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","JSON","stringify","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","LEGACY_DEV_FRAME_URL","LEGACY_PROD_FRAME_URL","LEGACY_SANDBOX_FRAME_URL","Version","mode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","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 payload.context.permissions = {\n location:\n status === 'authorizedWhenInUse'\n ? 'whenInUse'\n : status === 'authorizedAlways' || status === 'authorized'\n ? 'always'\n : 'denied',\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 console.log(JSON.stringify(payload));\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":["canOpenProtectedAppsSettings","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","OkHiException","OkHiMode","manifest","Platform","OkHiNativeModule","fetchCurrentLocation","result","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","device","config","streetView","backgroundColor","visible","addressTypes","home","work","protectedApps","OS","permissionsOnboarding","status","fetchIOSLocationPermissionStatus","locationPermission","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","error","console","log","hasBackgroundLocationPermission","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","JSON","stringify","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","LEGACY_DEV_FRAME_URL","LEGACY_PROD_FRAME_URL","LEGACY_SANDBOX_FRAME_URL","Version","mode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","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 console.log(JSON.stringify(payload));\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,4 +1,4 @@
1
1
  {
2
2
  "name": "okhiWebReactNative",
3
- "version": "1.2.3-beta.4"
3
+ "version": "1.2.3-beta.6"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-okhi",
3
- "version": "1.2.3-beta.4",
3
+ "version": "1.2.3-beta.6",
4
4
  "description": "The OkHi React Native library enables you to collect and verify addresses from your users",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -21,6 +21,7 @@ import type { OkVerifyStartConfiguration } from '../OkVerify/types';
21
21
  import {
22
22
  getApplicationConfiguration,
23
23
  isBackgroundLocationPermissionGranted,
24
+ isLocationPermissionGranted,
24
25
  isLocationServicesEnabled,
25
26
  openAppSettings,
26
27
  openProtectedAppsSettings,
@@ -43,10 +44,12 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
43
44
  ? { ...props.style, ...defaultStyle }
44
45
  : defaultStyle;
45
46
 
46
- const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;
47
+ const { user, onSuccess, onCloseRequest, onError, loader, launch, config } =
48
+ props;
47
49
  const webViewRef = useRef<WebView | null>(null);
48
50
  const startMessage =
49
51
  props.mode === 'create' ? 'start_app' : 'select_location';
52
+ const [ready, setReady] = useState(false);
50
53
 
51
54
  useEffect(() => {
52
55
  if (applicationConfiguration == null && token == null && user.phone) {
@@ -81,6 +84,7 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
81
84
  // TODO: handle faliure
82
85
  generateStartDataPayload(props, token, applicationConfiguration)
83
86
  .then((startPayload) => {
87
+ console.log('>>', JSON.stringify(startPayload));
84
88
  setStartPaylaod(startPayload);
85
89
  if (Platform.OS === 'android' && Platform.Version > 25) {
86
90
  OkHiNativeModule.setItem(
@@ -97,6 +101,31 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
97
101
  }
98
102
  }, [applicationConfiguration, props, token]);
99
103
 
104
+ useEffect(() => {
105
+ if (launch) {
106
+ if (
107
+ typeof config?.permissionsOnboarding === 'boolean' &&
108
+ !config.permissionsOnboarding
109
+ ) {
110
+ isBackgroundLocationPermissionGranted().then((result) => {
111
+ if (!result) {
112
+ onError(
113
+ new OkHiException({
114
+ code: OkHiException.PERMISSION_DENIED_CODE,
115
+ message:
116
+ 'Always location permission must be granted to launch OkCollect',
117
+ })
118
+ );
119
+ } else {
120
+ setReady(true);
121
+ }
122
+ });
123
+ } else {
124
+ setReady(true);
125
+ }
126
+ }
127
+ }, [launch, config?.permissionsOnboarding]);
128
+
100
129
  const runWebViewCallback = (value: string) => {
101
130
  if (webViewRef.current) {
102
131
  const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === "function") { runOkHiLocationManagerCallback("${value}") } })()`;
@@ -108,13 +137,19 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
108
137
  level: 'whenInUse' | 'always'
109
138
  ) => {
110
139
  // using request for android because we can programmatically turn on location services, unlike yucky ios
111
- request(level, null, (status, error) => {
112
- if (error) {
140
+ request(level, null, async (_, error) => {
141
+ if (!error) {
142
+ const isAlwaysGranted = await isBackgroundLocationPermissionGranted();
143
+ const isWhenInUseGranted = await isLocationPermissionGranted();
144
+ runWebViewCallback(
145
+ isAlwaysGranted
146
+ ? 'always'
147
+ : isWhenInUseGranted
148
+ ? 'whenInUse'
149
+ : 'denied'
150
+ );
151
+ } else {
113
152
  onError(error);
114
- } else if (level === 'whenInUse' && status === 'authorizedWhenInUse') {
115
- runWebViewCallback(level);
116
- } else if (level === 'always' && status === 'authorizedAlways') {
117
- runWebViewCallback(level);
118
153
  }
119
154
  });
120
155
  };
@@ -136,8 +171,9 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
136
171
  const isServiceAvailable = await isLocationServicesEnabled();
137
172
  if (!isServiceAvailable) {
138
173
  onError(serviceError);
139
- } else if (level === 'whenInUse' && (await requestLocationPermission())) {
140
- runWebViewCallback(level);
174
+ } else if (level === 'whenInUse') {
175
+ const result = await requestLocationPermission();
176
+ runWebViewCallback(result ? level : 'denied');
141
177
  } else if (level === 'always') {
142
178
  const granted = await isBackgroundLocationPermissionGranted();
143
179
  if (granted) {
@@ -281,10 +317,10 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
281
317
  <Modal
282
318
  animationType="slide"
283
319
  transparent={false}
284
- visible={launch}
320
+ visible={ready}
285
321
  onRequestClose={handleModalRequestClose}
286
322
  >
287
- {launch ? renderContent() : null}
323
+ {ready ? renderContent() : null}
288
324
  </Modal>
289
325
  );
290
326
  };
@@ -105,13 +105,16 @@ export const generateStartDataPayload = async (
105
105
 
106
106
  if (Platform.OS === 'ios') {
107
107
  const status = await OkHiNativeModule.fetchIOSLocationPermissionStatus();
108
+ const locationPermission =
109
+ status === 'notDetermined'
110
+ ? 'notDetermined'
111
+ : status === 'authorizedWhenInUse'
112
+ ? 'whenInUse'
113
+ : status === 'authorizedAlways'
114
+ ? 'always'
115
+ : 'denied';
108
116
  payload.context.permissions = {
109
- location:
110
- status === 'authorizedWhenInUse'
111
- ? 'whenInUse'
112
- : status === 'authorizedAlways' || status === 'authorized'
113
- ? 'always'
114
- : 'denied',
117
+ location: locationPermission,
115
118
  };
116
119
  if (
117
120
  status === 'authorized' ||
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "okhiWebReactNative",
3
- "version": "1.2.3-beta.4"
3
+ "version": "1.2.3-beta.6"
4
4
  }