react-native-okhi 1.1.1-beta.9 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +1 -1
- package/lib/commonjs/OkCollect/OkHiLocationManager.js +3 -2
- package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/commonjs/OkCollect/app.json +1 -1
- package/lib/commonjs/OkCollect/types.js.map +1 -1
- package/lib/commonjs/OkCore/Helpers.js +1 -1
- package/lib/commonjs/OkCore/Helpers.js.map +1 -1
- package/lib/module/OkCollect/OkHiLocationManager.js +3 -2
- package/lib/module/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/module/OkCollect/app.json +1 -1
- package/lib/module/OkCollect/types.js.map +1 -1
- package/lib/module/OkCore/Helpers.js +1 -1
- package/lib/module/OkCore/Helpers.js.map +1 -1
- package/lib/typescript/OkCollect/types.d.ts +4 -0
- package/package.json +1 -1
- package/src/OkCollect/OkHiLocationManager.tsx +4 -2
- package/src/OkCollect/app.json +1 -1
- package/src/OkCollect/types.ts +5 -0
- package/src/OkCore/Helpers.ts +1 -1
package/android/build.gradle
CHANGED
|
@@ -127,7 +127,7 @@ dependencies {
|
|
|
127
127
|
//noinspection GradleDynamicVersion
|
|
128
128
|
implementation "com.facebook.react:react-native:+"
|
|
129
129
|
implementation 'io.okhi.android:core:1.7.15'
|
|
130
|
-
implementation 'io.okhi.android:okverify:1.9.
|
|
130
|
+
implementation 'io.okhi.android:okverify:1.9.31'
|
|
131
131
|
// From node_modules
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -51,6 +51,7 @@ const OkHiLocationManager = props => {
|
|
|
51
51
|
launch
|
|
52
52
|
} = props;
|
|
53
53
|
const webViewRef = (0, _react.useRef)(null);
|
|
54
|
+
const startMessage = props.mode === 'create' ? 'start_app' : 'select_location';
|
|
54
55
|
(0, _react.useEffect)(() => {
|
|
55
56
|
if (applicationConfiguration == null && token == null && user.phone) {
|
|
56
57
|
(0, _OkCore.getApplicationConfiguration)().then(config => {
|
|
@@ -79,7 +80,7 @@ const OkHiLocationManager = props => {
|
|
|
79
80
|
|
|
80
81
|
if (_reactNative.Platform.OS === 'android' && _reactNative.Platform.Version > 25) {
|
|
81
82
|
_OkHiNativeModule.OkHiNativeModule.setItem('okcollect-launch-payload', JSON.stringify({
|
|
82
|
-
message:
|
|
83
|
+
message: startMessage,
|
|
83
84
|
payload: startPayload,
|
|
84
85
|
url: (0, _Util.getFrameUrl)(applicationConfiguration)
|
|
85
86
|
})).catch(console.error);
|
|
@@ -171,7 +172,7 @@ const OkHiLocationManager = props => {
|
|
|
171
172
|
jsAfterLoad,
|
|
172
173
|
jsBeforeLoad
|
|
173
174
|
} = (0, _Util.generateJavaScriptStartScript)({
|
|
174
|
-
message:
|
|
175
|
+
message: startMessage,
|
|
175
176
|
payload: startPayload
|
|
176
177
|
});
|
|
177
178
|
return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OkHiLocationManager","props","token","setToken","useState","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","useEffect","phone","getApplicationConfiguration","then","config","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","OkHiAuth","anonymousSignInWithPhoneNumber","catch","error","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","console","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","toString","openProtectedAppsSettings","fcmPushNotificationToken","location","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","sv","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","current","goBack","renderContent","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","uri","undefined"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n openProtectedAppsSettings,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [token, setToken] = useState<string | null>(null);\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n\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: 'select_location',\n payload: startPayload,\n url: getFrameUrl(applicationConfiguration),\n })\n ).catch(console.error);\n }\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload.toString(),\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else {\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config,\n createdUser.fcmPushNotificationToken\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: 'select_location',\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":["OkHiLocationManager","props","token","setToken","useState","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","startMessage","mode","useEffect","phone","getApplicationConfiguration","then","config","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","OkHiAuth","anonymousSignInWithPhoneNumber","catch","error","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","console","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","toString","openProtectedAppsSettings","fcmPushNotificationToken","location","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","sv","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","current","goBack","renderContent","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","uri","undefined"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n openProtectedAppsSettings,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [token, setToken] = useState<string | null>(null);\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n const startMessage =\n props.mode === 'create' ? 'start_app' : 'select_location';\n\n useEffect(() => {\n if (applicationConfiguration == null && token == null && user.phone) {\n getApplicationConfiguration()\n .then((config) => {\n if (!config && launch) {\n onError(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else if (config) {\n setApplicationConfiguration(config);\n const auth = new OkHiAuth();\n auth\n .anonymousSignInWithPhoneNumber(user.phone, ['verify'], config)\n .then(setToken)\n .catch(onError);\n }\n })\n .catch((error) => {\n if (launch) {\n onError(error);\n }\n });\n }\n }, [onError, user.phone, launch, applicationConfiguration, token]);\n\n useEffect(() => {\n if (token !== null && applicationConfiguration !== null) {\n // TODO: handle faliure\n generateStartDataPayload(props, token, applicationConfiguration)\n .then((startPayload) => {\n setStartPaylaod(startPayload);\n if (Platform.OS === 'android' && Platform.Version > 25) {\n OkHiNativeModule.setItem(\n 'okcollect-launch-payload',\n JSON.stringify({\n message: startMessage,\n payload: startPayload,\n url: getFrameUrl(applicationConfiguration),\n })\n ).catch(console.error);\n }\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload.toString(),\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else {\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config,\n createdUser.fcmPushNotificationToken\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: startMessage,\n payload: startPayload,\n });\n\n return (\n <SafeAreaView style={style}>\n <WebView\n source={{ uri: getFrameUrl(applicationConfiguration) }}\n injectedJavaScriptBeforeContentLoaded={\n Platform.OS === 'ios' ? jsBeforeLoad : undefined\n }\n injectedJavaScript={Platform.OS === 'ios' ? undefined : jsAfterLoad}\n onMessage={handleOnMessage}\n onError={handleOnError}\n onHttpError={handleOnError}\n geolocationEnabled={true}\n allowsBackForwardNavigationGestures={true}\n ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={launch}\n onRequestClose={handleModalRequestClose}\n >\n {launch ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit';\n payload: { user: any; location: any };\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit';\n payload: { user: any; location: any };\n}\n"],"mappings":""}
|
|
@@ -387,7 +387,7 @@ const requestAndroidNotificationPermission = async () => {
|
|
|
387
387
|
}
|
|
388
388
|
|
|
389
389
|
const status = await _reactNative.PermissionsAndroid.request(_reactNative.PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION);
|
|
390
|
-
return status
|
|
390
|
+
return status === 'granted';
|
|
391
391
|
}, 'android');
|
|
392
392
|
};
|
|
393
393
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isLocationServicesEnabled","isValidPlatform","OkHiNativeModule","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","Number","PermissionsAndroid","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","hasPermission","check","console","warn","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","Platform","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","errorHandler","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","serviceError","OkHiException","code","SERVICE_UNAVAILABLE_CODE","message","googlePlayError","handleError","error","handleGooglePlayServiceRequest","then","googlePlayStatus","handleRationaleRequest","handleRationaleAlert","alertRationale","Promise","resolve","_","Alert","alert","title","text","grantButton","label","onPress","denyButton","style","onDismiss","handlePermissionRequest","OkHiNativeEvents","removeAllListeners","addListener","permissionUpdate","whenInUseResult","initialWhenInUseResult","alwaysResult","currentStatus","retriveLocationPermissionStatus","showRationale","result","serviceStatus","enableResult","catch","openAppSettings","alwaysPerm","whenInUsePerm","requestTrackingAuthorization","canOpenProtectedAppsSettings","openProtectedAppsSettings","isAndroidNotificationGranted","POST_NOTIFICATION","requestAndroidNotificationPermission","existingPermissionStatus","isIOSNotificationGranted","isNotificationPermissionGranted","requestIOSNotificationPermission","requestNotificationPermission","UNSUPPORTED_PLATFORM_CODE","UNSUPPORTED_PLATFORM_MESSAGE"],"sources":["Helpers.ts"],"sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, Permission, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\nimport { OkHiException } from './OkHiException';\n\n/**\n * Checks whether location services are enabled\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the service is available\n */\nexport const isLocationServicesEnabled = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationServicesEnabled);\n};\n\n/**\n * Checks whether when in use location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isLocationPermissionGranted = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationPermissionGranted);\n};\n\nconst isBackgroundLocationPermissionGrantedAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) {\n return true;\n }\n if (Number(sdkVersion) < 29) {\n return await isLocationPermissionGranted();\n }\n if (\n typeof PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION !==\n 'undefined'\n ) {\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION as Permission\n );\n return hasPermission;\n }\n console.warn(\n `PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION is undefined, this is an issue with the current version of RN you are running. Please consider upgrading`\n );\n return false;\n };\n\nconst isBackgroundLocationPermissionGrantedIOS = (): Promise<boolean> => {\n return OkHiNativeModule.isBackgroundLocationPermissionGranted();\n};\n\n/**\n * Checks whether background location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isBackgroundLocationPermissionGranted = (): Promise<boolean> => {\n const fn =\n Platform.OS === 'android'\n ? isBackgroundLocationPermissionGrantedAndroid\n : isBackgroundLocationPermissionGrantedIOS;\n return isValidPlatform(fn);\n};\n\nconst requestLocationPermissionAndroid = async (): Promise<boolean> => {\n const status: any = await PermissionsAndroid.requestMultiple([\n PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION as Permission,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION as Permission,\n ]);\n return status['android.permission.ACCESS_FINE_LOCATION'] === 'granted';\n};\n\nconst requestLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestLocationPermission();\n};\n\n/**\n * Requests for when in use location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestLocationPermission = async (): Promise<boolean> => {\n const isGranted = await isLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestLocationPermissionAndroid\n : requestLocationPermissionIOS\n );\n};\n\nconst requestBackgroundLocationPermissionAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) return true;\n if (Number(sdkVersion) >= 29) {\n const permissions: any = [\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,\n ];\n const status: any = await PermissionsAndroid.requestMultiple(permissions);\n return (\n status['android.permission.ACCESS_BACKGROUND_LOCATION'] === 'granted'\n );\n } else {\n return await requestLocationPermissionAndroid();\n }\n };\n\nconst requestBackgroundLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestBackgroundLocationPermission();\n};\n\n/**\n * Requests for background location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestBackgroundLocationPermission =\n async (): Promise<boolean> => {\n const isGranted = await isBackgroundLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestBackgroundLocationPermissionAndroid\n : requestBackgroundLocationPermissionIOS\n );\n };\n\n/**\n * Requests the user to enable location services by showing an in app modal on android and opening location settings on iOS\n * @returns {Promise<boolean>} A promise that resolves to either a boolean value on android or null on iOS\n */\nexport const requestEnableLocationServices = (): Promise<boolean | null> => {\n return isValidPlatform(OkHiNativeModule.requestEnableLocationServices);\n};\n\n/**\n * Android Only - Checks if Google Play Services is available\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const isGooglePlayServicesAvailable = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.isGooglePlayServicesAvailable,\n 'android'\n );\n};\n\n/**\n * Android Only - Requests user to enable Google Play Services\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const requestEnableGooglePlayServices = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.requestEnableGooglePlayServices,\n 'android'\n );\n};\n\n/**\n * Returns the system version of the current platform\n * @returns {Promise<boolean>} A promise that resolves either a string on iOS or number on Android\n */\nexport const getSystemVersion = (): Promise<string | number> =>\n isValidPlatform(OkHiNativeModule.getSystemVersion);\n\n/**\n * Requests location permission from the user. It'll also attempt to activate any disbaled services (Android Only)\n */\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n denyButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\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\n const googlePlayError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Google Play Services is currently unavailable. Please enable in settings',\n });\n\n const handleError = (error: OkHiException) => {\n callback(null, error);\n };\n\n const handleGooglePlayServiceRequest = () => {\n requestEnableGooglePlayServices().then((googlePlayStatus) => {\n if (!googlePlayStatus) {\n handleError(googlePlayError);\n } else {\n handleRationaleRequest();\n }\n });\n };\n\n const handleRationaleAlert = (alertRationale: {\n title: string;\n text: string;\n grantButton?: { label: string };\n denyButton?: { label: string };\n }) => {\n return new Promise((resolve, _) => {\n Alert.alert(\n alertRationale.title,\n alertRationale.text,\n [\n {\n text: alertRationale.grantButton\n ? alertRationale.grantButton.label\n : 'Grant',\n onPress: () => {\n resolve(true);\n },\n },\n {\n text: alertRationale.denyButton\n ? alertRationale.denyButton.label\n : 'Deny',\n onPress: () => {\n resolve(false);\n },\n style: 'cancel',\n },\n ],\n {\n onDismiss: () => {\n resolve(false);\n },\n }\n );\n });\n };\n\n const handlePermissionRequest = () => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener(\n 'onLocationPermissionStatusUpdate',\n (permissionUpdate) => {\n callback(permissionUpdate, null);\n }\n );\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((whenInUseResult) =>\n callback(whenInUseResult ? 'authorizedWhenInUse' : 'denied', null)\n );\n } else {\n requestLocationPermissionAndroid().then((initialWhenInUseResult) => {\n if (!initialWhenInUseResult) {\n callback('denied', null);\n } else {\n callback('authorizedWhenInUse', null);\n requestBackgroundLocationPermission().then((alwaysResult) => {\n callback(\n alwaysResult ? 'authorizedAlways' : 'authorizedWhenInUse',\n null\n );\n });\n }\n });\n }\n }\n };\n\n const handleRationaleRequest = async () => {\n const currentStatus = await retriveLocationPermissionStatus();\n let showRationale = true;\n if (\n locationPermissionType === 'whenInUse' &&\n (currentStatus === 'authorizedWhenInUse' ||\n currentStatus === 'authorizedAlways')\n ) {\n showRationale = false;\n }\n if (\n locationPermissionType === 'always' &&\n currentStatus === 'authorizedAlways'\n ) {\n showRationale = false;\n }\n if (rationale && showRationale) {\n const result = await handleRationaleAlert(rationale);\n if (!result) {\n callback('rationaleDissmissed', null);\n } else {\n handlePermissionRequest();\n }\n } else {\n handlePermissionRequest();\n }\n };\n\n isLocationServicesEnabled()\n .then((serviceStatus) => {\n if (!serviceStatus && Platform.OS === 'ios') {\n handleError(serviceError);\n } else if (!serviceStatus && Platform.OS === 'android') {\n requestEnableLocationServices()\n .then((enableResult) => {\n if (!enableResult) {\n handleError(serviceError);\n } else {\n handleGooglePlayServiceRequest();\n }\n })\n .catch(handleError);\n } else {\n if (Platform.OS === 'ios') {\n handleRationaleRequest();\n } else {\n handleGooglePlayServiceRequest();\n }\n }\n })\n .catch(handleError);\n};\n\n/**\n * Open the device's app settings.\n */\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\n\n/**\n * Retrives the location permission status from the device\n */\nexport const retriveLocationPermissionStatus =\n async (): Promise<LocationPermissionStatus> => {\n if (Platform.OS === 'ios') {\n return OkHiNativeModule.retriveLocationPermissionStatus() as Promise<LocationPermissionStatus>;\n }\n const alwaysPerm = await isBackgroundLocationPermissionGranted();\n if (alwaysPerm) {\n return 'authorizedAlways';\n }\n const whenInUsePerm = await isLocationPermissionGranted();\n return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';\n };\n\n/**\n * Requests tracking authorization from the user. iOS only, iOS version >= 14\n * Read more: https://developer.apple.com/app-store/user-privacy-and-data-use/\n */\nexport const requestTrackingAuthorization = async (): Promise<\n string | null\n> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.requestTrackingAuthorization();\n return result;\n }, 'ios');\n};\n\n/**\n * Checks whether current device can open \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const canOpenProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.canOpenProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\n/**\n * Opens \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const openProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.openProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\nconst isAndroidNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 33) {\n return true;\n }\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return hasPermission;\n }, 'android');\n};\n\nconst requestAndroidNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isAndroidNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n const status: any = await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return status['android.permission.POST_NOTIFICATION'] === 'granted';\n }, 'android');\n};\n\nconst isIOSNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n return OkHiNativeModule.isNotificationPermissionGranted();\n }, 'ios');\n};\n\nconst requestIOSNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isIOSNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n return OkHiNativeModule.requestNotificationPermission();\n }, 'ios');\n};\n\n/**\n * Checks whether notification permission is granted on both android and ios devices\n */\nexport const isNotificationPermissionGranted = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return isAndroidNotificationGranted();\n } else if (Platform.OS === 'ios') {\n return isIOSNotificationGranted();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Requests notification permission from both android and ios devices\n */\nexport const requestNotificationPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return requestAndroidNotificationPermission();\n } else if (Platform.OS === 'ios') {\n return requestIOSNotificationPermission();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["isLocationServicesEnabled","isValidPlatform","OkHiNativeModule","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","Number","PermissionsAndroid","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","hasPermission","check","console","warn","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","Platform","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","errorHandler","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","serviceError","OkHiException","code","SERVICE_UNAVAILABLE_CODE","message","googlePlayError","handleError","error","handleGooglePlayServiceRequest","then","googlePlayStatus","handleRationaleRequest","handleRationaleAlert","alertRationale","Promise","resolve","_","Alert","alert","title","text","grantButton","label","onPress","denyButton","style","onDismiss","handlePermissionRequest","OkHiNativeEvents","removeAllListeners","addListener","permissionUpdate","whenInUseResult","initialWhenInUseResult","alwaysResult","currentStatus","retriveLocationPermissionStatus","showRationale","result","serviceStatus","enableResult","catch","openAppSettings","alwaysPerm","whenInUsePerm","requestTrackingAuthorization","canOpenProtectedAppsSettings","openProtectedAppsSettings","isAndroidNotificationGranted","POST_NOTIFICATION","requestAndroidNotificationPermission","existingPermissionStatus","isIOSNotificationGranted","isNotificationPermissionGranted","requestIOSNotificationPermission","requestNotificationPermission","UNSUPPORTED_PLATFORM_CODE","UNSUPPORTED_PLATFORM_MESSAGE"],"sources":["Helpers.ts"],"sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, Permission, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\nimport { OkHiException } from './OkHiException';\n\n/**\n * Checks whether location services are enabled\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the service is available\n */\nexport const isLocationServicesEnabled = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationServicesEnabled);\n};\n\n/**\n * Checks whether when in use location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isLocationPermissionGranted = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationPermissionGranted);\n};\n\nconst isBackgroundLocationPermissionGrantedAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) {\n return true;\n }\n if (Number(sdkVersion) < 29) {\n return await isLocationPermissionGranted();\n }\n if (\n typeof PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION !==\n 'undefined'\n ) {\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION as Permission\n );\n return hasPermission;\n }\n console.warn(\n `PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION is undefined, this is an issue with the current version of RN you are running. Please consider upgrading`\n );\n return false;\n };\n\nconst isBackgroundLocationPermissionGrantedIOS = (): Promise<boolean> => {\n return OkHiNativeModule.isBackgroundLocationPermissionGranted();\n};\n\n/**\n * Checks whether background location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isBackgroundLocationPermissionGranted = (): Promise<boolean> => {\n const fn =\n Platform.OS === 'android'\n ? isBackgroundLocationPermissionGrantedAndroid\n : isBackgroundLocationPermissionGrantedIOS;\n return isValidPlatform(fn);\n};\n\nconst requestLocationPermissionAndroid = async (): Promise<boolean> => {\n const status: any = await PermissionsAndroid.requestMultiple([\n PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION as Permission,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION as Permission,\n ]);\n return status['android.permission.ACCESS_FINE_LOCATION'] === 'granted';\n};\n\nconst requestLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestLocationPermission();\n};\n\n/**\n * Requests for when in use location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestLocationPermission = async (): Promise<boolean> => {\n const isGranted = await isLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestLocationPermissionAndroid\n : requestLocationPermissionIOS\n );\n};\n\nconst requestBackgroundLocationPermissionAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) return true;\n if (Number(sdkVersion) >= 29) {\n const permissions: any = [\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,\n ];\n const status: any = await PermissionsAndroid.requestMultiple(permissions);\n return (\n status['android.permission.ACCESS_BACKGROUND_LOCATION'] === 'granted'\n );\n } else {\n return await requestLocationPermissionAndroid();\n }\n };\n\nconst requestBackgroundLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestBackgroundLocationPermission();\n};\n\n/**\n * Requests for background location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestBackgroundLocationPermission =\n async (): Promise<boolean> => {\n const isGranted = await isBackgroundLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestBackgroundLocationPermissionAndroid\n : requestBackgroundLocationPermissionIOS\n );\n };\n\n/**\n * Requests the user to enable location services by showing an in app modal on android and opening location settings on iOS\n * @returns {Promise<boolean>} A promise that resolves to either a boolean value on android or null on iOS\n */\nexport const requestEnableLocationServices = (): Promise<boolean | null> => {\n return isValidPlatform(OkHiNativeModule.requestEnableLocationServices);\n};\n\n/**\n * Android Only - Checks if Google Play Services is available\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const isGooglePlayServicesAvailable = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.isGooglePlayServicesAvailable,\n 'android'\n );\n};\n\n/**\n * Android Only - Requests user to enable Google Play Services\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const requestEnableGooglePlayServices = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.requestEnableGooglePlayServices,\n 'android'\n );\n};\n\n/**\n * Returns the system version of the current platform\n * @returns {Promise<boolean>} A promise that resolves either a string on iOS or number on Android\n */\nexport const getSystemVersion = (): Promise<string | number> =>\n isValidPlatform(OkHiNativeModule.getSystemVersion);\n\n/**\n * Requests location permission from the user. It'll also attempt to activate any disbaled services (Android Only)\n */\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n denyButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\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\n const googlePlayError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Google Play Services is currently unavailable. Please enable in settings',\n });\n\n const handleError = (error: OkHiException) => {\n callback(null, error);\n };\n\n const handleGooglePlayServiceRequest = () => {\n requestEnableGooglePlayServices().then((googlePlayStatus) => {\n if (!googlePlayStatus) {\n handleError(googlePlayError);\n } else {\n handleRationaleRequest();\n }\n });\n };\n\n const handleRationaleAlert = (alertRationale: {\n title: string;\n text: string;\n grantButton?: { label: string };\n denyButton?: { label: string };\n }) => {\n return new Promise((resolve, _) => {\n Alert.alert(\n alertRationale.title,\n alertRationale.text,\n [\n {\n text: alertRationale.grantButton\n ? alertRationale.grantButton.label\n : 'Grant',\n onPress: () => {\n resolve(true);\n },\n },\n {\n text: alertRationale.denyButton\n ? alertRationale.denyButton.label\n : 'Deny',\n onPress: () => {\n resolve(false);\n },\n style: 'cancel',\n },\n ],\n {\n onDismiss: () => {\n resolve(false);\n },\n }\n );\n });\n };\n\n const handlePermissionRequest = () => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener(\n 'onLocationPermissionStatusUpdate',\n (permissionUpdate) => {\n callback(permissionUpdate, null);\n }\n );\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((whenInUseResult) =>\n callback(whenInUseResult ? 'authorizedWhenInUse' : 'denied', null)\n );\n } else {\n requestLocationPermissionAndroid().then((initialWhenInUseResult) => {\n if (!initialWhenInUseResult) {\n callback('denied', null);\n } else {\n callback('authorizedWhenInUse', null);\n requestBackgroundLocationPermission().then((alwaysResult) => {\n callback(\n alwaysResult ? 'authorizedAlways' : 'authorizedWhenInUse',\n null\n );\n });\n }\n });\n }\n }\n };\n\n const handleRationaleRequest = async () => {\n const currentStatus = await retriveLocationPermissionStatus();\n let showRationale = true;\n if (\n locationPermissionType === 'whenInUse' &&\n (currentStatus === 'authorizedWhenInUse' ||\n currentStatus === 'authorizedAlways')\n ) {\n showRationale = false;\n }\n if (\n locationPermissionType === 'always' &&\n currentStatus === 'authorizedAlways'\n ) {\n showRationale = false;\n }\n if (rationale && showRationale) {\n const result = await handleRationaleAlert(rationale);\n if (!result) {\n callback('rationaleDissmissed', null);\n } else {\n handlePermissionRequest();\n }\n } else {\n handlePermissionRequest();\n }\n };\n\n isLocationServicesEnabled()\n .then((serviceStatus) => {\n if (!serviceStatus && Platform.OS === 'ios') {\n handleError(serviceError);\n } else if (!serviceStatus && Platform.OS === 'android') {\n requestEnableLocationServices()\n .then((enableResult) => {\n if (!enableResult) {\n handleError(serviceError);\n } else {\n handleGooglePlayServiceRequest();\n }\n })\n .catch(handleError);\n } else {\n if (Platform.OS === 'ios') {\n handleRationaleRequest();\n } else {\n handleGooglePlayServiceRequest();\n }\n }\n })\n .catch(handleError);\n};\n\n/**\n * Open the device's app settings.\n */\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\n\n/**\n * Retrives the location permission status from the device\n */\nexport const retriveLocationPermissionStatus =\n async (): Promise<LocationPermissionStatus> => {\n if (Platform.OS === 'ios') {\n return OkHiNativeModule.retriveLocationPermissionStatus() as Promise<LocationPermissionStatus>;\n }\n const alwaysPerm = await isBackgroundLocationPermissionGranted();\n if (alwaysPerm) {\n return 'authorizedAlways';\n }\n const whenInUsePerm = await isLocationPermissionGranted();\n return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';\n };\n\n/**\n * Requests tracking authorization from the user. iOS only, iOS version >= 14\n * Read more: https://developer.apple.com/app-store/user-privacy-and-data-use/\n */\nexport const requestTrackingAuthorization = async (): Promise<\n string | null\n> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.requestTrackingAuthorization();\n return result;\n }, 'ios');\n};\n\n/**\n * Checks whether current device can open \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const canOpenProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.canOpenProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\n/**\n * Opens \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const openProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.openProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\nconst isAndroidNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 33) {\n return true;\n }\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return hasPermission;\n }, 'android');\n};\n\nconst requestAndroidNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isAndroidNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n const status: any = await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return status === 'granted';\n }, 'android');\n};\n\nconst isIOSNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n return OkHiNativeModule.isNotificationPermissionGranted();\n }, 'ios');\n};\n\nconst requestIOSNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isIOSNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n return OkHiNativeModule.requestNotificationPermission();\n }, 'ios');\n};\n\n/**\n * Checks whether notification permission is granted on both android and ios devices\n */\nexport const isNotificationPermissionGranted = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return isAndroidNotificationGranted();\n } else if (Platform.OS === 'ios') {\n return isIOSNotificationGranted();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Requests notification permission from both android and ios devices\n */\nexport const requestNotificationPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return requestAndroidNotificationPermission();\n } else if (Platform.OS === 'ios') {\n return requestIOSNotificationPermission();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n"],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ export const OkHiLocationManager = props => {
|
|
|
31
31
|
launch
|
|
32
32
|
} = props;
|
|
33
33
|
const webViewRef = useRef(null);
|
|
34
|
+
const startMessage = props.mode === 'create' ? 'start_app' : 'select_location';
|
|
34
35
|
useEffect(() => {
|
|
35
36
|
if (applicationConfiguration == null && token == null && user.phone) {
|
|
36
37
|
getApplicationConfiguration().then(config => {
|
|
@@ -59,7 +60,7 @@ export const OkHiLocationManager = props => {
|
|
|
59
60
|
|
|
60
61
|
if (Platform.OS === 'android' && Platform.Version > 25) {
|
|
61
62
|
OkHiNativeModule.setItem('okcollect-launch-payload', JSON.stringify({
|
|
62
|
-
message:
|
|
63
|
+
message: startMessage,
|
|
63
64
|
payload: startPayload,
|
|
64
65
|
url: getFrameUrl(applicationConfiguration)
|
|
65
66
|
})).catch(console.error);
|
|
@@ -151,7 +152,7 @@ export const OkHiLocationManager = props => {
|
|
|
151
152
|
jsAfterLoad,
|
|
152
153
|
jsBeforeLoad
|
|
153
154
|
} = generateJavaScriptStartScript({
|
|
154
|
-
message:
|
|
155
|
+
message: startMessage,
|
|
155
156
|
payload: startPayload
|
|
156
157
|
});
|
|
157
158
|
return /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","OkHiException","OkHiAuth","start","sv","getApplicationConfiguration","openProtectedAppsSettings","OkHiNativeModule","OkHiLocationManager","props","token","setToken","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","phone","then","config","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","anonymousSignInWithPhoneNumber","catch","error","OS","Version","setItem","JSON","stringify","payload","url","console","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","toString","fcmPushNotificationToken","location","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","current","goBack","renderContent","jsAfterLoad","jsBeforeLoad","uri","undefined"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n openProtectedAppsSettings,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [token, setToken] = useState<string | null>(null);\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n\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: 'select_location',\n payload: startPayload,\n url: getFrameUrl(applicationConfiguration),\n })\n ).catch(console.error);\n }\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload.toString(),\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else {\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config,\n createdUser.fcmPushNotificationToken\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: 'select_location',\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","openProtectedAppsSettings","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","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","toString","fcmPushNotificationToken","location","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","current","goBack","renderContent","jsAfterLoad","jsBeforeLoad","uri","undefined"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n openProtectedAppsSettings,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [token, setToken] = useState<string | null>(null);\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n const startMessage =\n props.mode === 'create' ? 'start_app' : 'select_location';\n\n useEffect(() => {\n if (applicationConfiguration == null && token == null && user.phone) {\n getApplicationConfiguration()\n .then((config) => {\n if (!config && launch) {\n onError(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else if (config) {\n setApplicationConfiguration(config);\n const auth = new OkHiAuth();\n auth\n .anonymousSignInWithPhoneNumber(user.phone, ['verify'], config)\n .then(setToken)\n .catch(onError);\n }\n })\n .catch((error) => {\n if (launch) {\n onError(error);\n }\n });\n }\n }, [onError, user.phone, launch, applicationConfiguration, token]);\n\n useEffect(() => {\n if (token !== null && applicationConfiguration !== null) {\n // TODO: handle faliure\n generateStartDataPayload(props, token, applicationConfiguration)\n .then((startPayload) => {\n setStartPaylaod(startPayload);\n if (Platform.OS === 'android' && Platform.Version > 25) {\n OkHiNativeModule.setItem(\n 'okcollect-launch-payload',\n JSON.stringify({\n message: startMessage,\n payload: startPayload,\n url: getFrameUrl(applicationConfiguration),\n })\n ).catch(console.error);\n }\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload.toString(),\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else {\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config,\n createdUser.fcmPushNotificationToken\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: startMessage,\n payload: startPayload,\n });\n\n return (\n <SafeAreaView style={style}>\n <WebView\n source={{ uri: getFrameUrl(applicationConfiguration) }}\n injectedJavaScriptBeforeContentLoaded={\n Platform.OS === 'ios' ? jsBeforeLoad : undefined\n }\n injectedJavaScript={Platform.OS === 'ios' ? undefined : jsAfterLoad}\n onMessage={handleOnMessage}\n onError={handleOnError}\n onHttpError={handleOnError}\n geolocationEnabled={true}\n allowsBackForwardNavigationGestures={true}\n ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={launch}\n onRequestClose={handleModalRequestClose}\n >\n {launch ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit';\n payload: { user: any; location: any };\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit';\n payload: { user: any; location: any };\n}\n"],"mappings":""}
|
|
@@ -335,7 +335,7 @@ const requestAndroidNotificationPermission = async () => {
|
|
|
335
335
|
}
|
|
336
336
|
|
|
337
337
|
const status = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION);
|
|
338
|
-
return status
|
|
338
|
+
return status === 'granted';
|
|
339
339
|
}, 'android');
|
|
340
340
|
};
|
|
341
341
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OkHiNativeModule","OkHiNativeEvents","Alert","PermissionsAndroid","Platform","errorHandler","isValidPlatform","OkHiException","isLocationServicesEnabled","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","Number","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","hasPermission","check","console","warn","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","serviceError","code","SERVICE_UNAVAILABLE_CODE","message","googlePlayError","handleError","error","handleGooglePlayServiceRequest","then","googlePlayStatus","handleRationaleRequest","handleRationaleAlert","alertRationale","Promise","resolve","_","alert","title","text","grantButton","label","onPress","denyButton","style","onDismiss","handlePermissionRequest","removeAllListeners","addListener","permissionUpdate","whenInUseResult","initialWhenInUseResult","alwaysResult","currentStatus","retriveLocationPermissionStatus","showRationale","result","serviceStatus","enableResult","catch","openAppSettings","alwaysPerm","whenInUsePerm","requestTrackingAuthorization","canOpenProtectedAppsSettings","openProtectedAppsSettings","isAndroidNotificationGranted","POST_NOTIFICATION","requestAndroidNotificationPermission","existingPermissionStatus","isIOSNotificationGranted","isNotificationPermissionGranted","requestIOSNotificationPermission","requestNotificationPermission","UNSUPPORTED_PLATFORM_CODE","UNSUPPORTED_PLATFORM_MESSAGE"],"sources":["Helpers.ts"],"sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, Permission, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\nimport { OkHiException } from './OkHiException';\n\n/**\n * Checks whether location services are enabled\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the service is available\n */\nexport const isLocationServicesEnabled = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationServicesEnabled);\n};\n\n/**\n * Checks whether when in use location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isLocationPermissionGranted = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationPermissionGranted);\n};\n\nconst isBackgroundLocationPermissionGrantedAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) {\n return true;\n }\n if (Number(sdkVersion) < 29) {\n return await isLocationPermissionGranted();\n }\n if (\n typeof PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION !==\n 'undefined'\n ) {\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION as Permission\n );\n return hasPermission;\n }\n console.warn(\n `PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION is undefined, this is an issue with the current version of RN you are running. Please consider upgrading`\n );\n return false;\n };\n\nconst isBackgroundLocationPermissionGrantedIOS = (): Promise<boolean> => {\n return OkHiNativeModule.isBackgroundLocationPermissionGranted();\n};\n\n/**\n * Checks whether background location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isBackgroundLocationPermissionGranted = (): Promise<boolean> => {\n const fn =\n Platform.OS === 'android'\n ? isBackgroundLocationPermissionGrantedAndroid\n : isBackgroundLocationPermissionGrantedIOS;\n return isValidPlatform(fn);\n};\n\nconst requestLocationPermissionAndroid = async (): Promise<boolean> => {\n const status: any = await PermissionsAndroid.requestMultiple([\n PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION as Permission,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION as Permission,\n ]);\n return status['android.permission.ACCESS_FINE_LOCATION'] === 'granted';\n};\n\nconst requestLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestLocationPermission();\n};\n\n/**\n * Requests for when in use location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestLocationPermission = async (): Promise<boolean> => {\n const isGranted = await isLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestLocationPermissionAndroid\n : requestLocationPermissionIOS\n );\n};\n\nconst requestBackgroundLocationPermissionAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) return true;\n if (Number(sdkVersion) >= 29) {\n const permissions: any = [\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,\n ];\n const status: any = await PermissionsAndroid.requestMultiple(permissions);\n return (\n status['android.permission.ACCESS_BACKGROUND_LOCATION'] === 'granted'\n );\n } else {\n return await requestLocationPermissionAndroid();\n }\n };\n\nconst requestBackgroundLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestBackgroundLocationPermission();\n};\n\n/**\n * Requests for background location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestBackgroundLocationPermission =\n async (): Promise<boolean> => {\n const isGranted = await isBackgroundLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestBackgroundLocationPermissionAndroid\n : requestBackgroundLocationPermissionIOS\n );\n };\n\n/**\n * Requests the user to enable location services by showing an in app modal on android and opening location settings on iOS\n * @returns {Promise<boolean>} A promise that resolves to either a boolean value on android or null on iOS\n */\nexport const requestEnableLocationServices = (): Promise<boolean | null> => {\n return isValidPlatform(OkHiNativeModule.requestEnableLocationServices);\n};\n\n/**\n * Android Only - Checks if Google Play Services is available\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const isGooglePlayServicesAvailable = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.isGooglePlayServicesAvailable,\n 'android'\n );\n};\n\n/**\n * Android Only - Requests user to enable Google Play Services\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const requestEnableGooglePlayServices = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.requestEnableGooglePlayServices,\n 'android'\n );\n};\n\n/**\n * Returns the system version of the current platform\n * @returns {Promise<boolean>} A promise that resolves either a string on iOS or number on Android\n */\nexport const getSystemVersion = (): Promise<string | number> =>\n isValidPlatform(OkHiNativeModule.getSystemVersion);\n\n/**\n * Requests location permission from the user. It'll also attempt to activate any disbaled services (Android Only)\n */\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n denyButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\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\n const googlePlayError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Google Play Services is currently unavailable. Please enable in settings',\n });\n\n const handleError = (error: OkHiException) => {\n callback(null, error);\n };\n\n const handleGooglePlayServiceRequest = () => {\n requestEnableGooglePlayServices().then((googlePlayStatus) => {\n if (!googlePlayStatus) {\n handleError(googlePlayError);\n } else {\n handleRationaleRequest();\n }\n });\n };\n\n const handleRationaleAlert = (alertRationale: {\n title: string;\n text: string;\n grantButton?: { label: string };\n denyButton?: { label: string };\n }) => {\n return new Promise((resolve, _) => {\n Alert.alert(\n alertRationale.title,\n alertRationale.text,\n [\n {\n text: alertRationale.grantButton\n ? alertRationale.grantButton.label\n : 'Grant',\n onPress: () => {\n resolve(true);\n },\n },\n {\n text: alertRationale.denyButton\n ? alertRationale.denyButton.label\n : 'Deny',\n onPress: () => {\n resolve(false);\n },\n style: 'cancel',\n },\n ],\n {\n onDismiss: () => {\n resolve(false);\n },\n }\n );\n });\n };\n\n const handlePermissionRequest = () => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener(\n 'onLocationPermissionStatusUpdate',\n (permissionUpdate) => {\n callback(permissionUpdate, null);\n }\n );\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((whenInUseResult) =>\n callback(whenInUseResult ? 'authorizedWhenInUse' : 'denied', null)\n );\n } else {\n requestLocationPermissionAndroid().then((initialWhenInUseResult) => {\n if (!initialWhenInUseResult) {\n callback('denied', null);\n } else {\n callback('authorizedWhenInUse', null);\n requestBackgroundLocationPermission().then((alwaysResult) => {\n callback(\n alwaysResult ? 'authorizedAlways' : 'authorizedWhenInUse',\n null\n );\n });\n }\n });\n }\n }\n };\n\n const handleRationaleRequest = async () => {\n const currentStatus = await retriveLocationPermissionStatus();\n let showRationale = true;\n if (\n locationPermissionType === 'whenInUse' &&\n (currentStatus === 'authorizedWhenInUse' ||\n currentStatus === 'authorizedAlways')\n ) {\n showRationale = false;\n }\n if (\n locationPermissionType === 'always' &&\n currentStatus === 'authorizedAlways'\n ) {\n showRationale = false;\n }\n if (rationale && showRationale) {\n const result = await handleRationaleAlert(rationale);\n if (!result) {\n callback('rationaleDissmissed', null);\n } else {\n handlePermissionRequest();\n }\n } else {\n handlePermissionRequest();\n }\n };\n\n isLocationServicesEnabled()\n .then((serviceStatus) => {\n if (!serviceStatus && Platform.OS === 'ios') {\n handleError(serviceError);\n } else if (!serviceStatus && Platform.OS === 'android') {\n requestEnableLocationServices()\n .then((enableResult) => {\n if (!enableResult) {\n handleError(serviceError);\n } else {\n handleGooglePlayServiceRequest();\n }\n })\n .catch(handleError);\n } else {\n if (Platform.OS === 'ios') {\n handleRationaleRequest();\n } else {\n handleGooglePlayServiceRequest();\n }\n }\n })\n .catch(handleError);\n};\n\n/**\n * Open the device's app settings.\n */\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\n\n/**\n * Retrives the location permission status from the device\n */\nexport const retriveLocationPermissionStatus =\n async (): Promise<LocationPermissionStatus> => {\n if (Platform.OS === 'ios') {\n return OkHiNativeModule.retriveLocationPermissionStatus() as Promise<LocationPermissionStatus>;\n }\n const alwaysPerm = await isBackgroundLocationPermissionGranted();\n if (alwaysPerm) {\n return 'authorizedAlways';\n }\n const whenInUsePerm = await isLocationPermissionGranted();\n return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';\n };\n\n/**\n * Requests tracking authorization from the user. iOS only, iOS version >= 14\n * Read more: https://developer.apple.com/app-store/user-privacy-and-data-use/\n */\nexport const requestTrackingAuthorization = async (): Promise<\n string | null\n> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.requestTrackingAuthorization();\n return result;\n }, 'ios');\n};\n\n/**\n * Checks whether current device can open \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const canOpenProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.canOpenProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\n/**\n * Opens \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const openProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.openProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\nconst isAndroidNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 33) {\n return true;\n }\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return hasPermission;\n }, 'android');\n};\n\nconst requestAndroidNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isAndroidNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n const status: any = await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return status['android.permission.POST_NOTIFICATION'] === 'granted';\n }, 'android');\n};\n\nconst isIOSNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n return OkHiNativeModule.isNotificationPermissionGranted();\n }, 'ios');\n};\n\nconst requestIOSNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isIOSNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n return OkHiNativeModule.requestNotificationPermission();\n }, 'ios');\n};\n\n/**\n * Checks whether notification permission is granted on both android and ios devices\n */\nexport const isNotificationPermissionGranted = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return isAndroidNotificationGranted();\n } else if (Platform.OS === 'ios') {\n return isIOSNotificationGranted();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Requests notification permission from both android and ios devices\n */\nexport const requestNotificationPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return requestAndroidNotificationPermission();\n } else if (Platform.OS === 'ios') {\n return requestIOSNotificationPermission();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["OkHiNativeModule","OkHiNativeEvents","Alert","PermissionsAndroid","Platform","errorHandler","isValidPlatform","OkHiException","isLocationServicesEnabled","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","Number","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","hasPermission","check","console","warn","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","serviceError","code","SERVICE_UNAVAILABLE_CODE","message","googlePlayError","handleError","error","handleGooglePlayServiceRequest","then","googlePlayStatus","handleRationaleRequest","handleRationaleAlert","alertRationale","Promise","resolve","_","alert","title","text","grantButton","label","onPress","denyButton","style","onDismiss","handlePermissionRequest","removeAllListeners","addListener","permissionUpdate","whenInUseResult","initialWhenInUseResult","alwaysResult","currentStatus","retriveLocationPermissionStatus","showRationale","result","serviceStatus","enableResult","catch","openAppSettings","alwaysPerm","whenInUsePerm","requestTrackingAuthorization","canOpenProtectedAppsSettings","openProtectedAppsSettings","isAndroidNotificationGranted","POST_NOTIFICATION","requestAndroidNotificationPermission","existingPermissionStatus","isIOSNotificationGranted","isNotificationPermissionGranted","requestIOSNotificationPermission","requestNotificationPermission","UNSUPPORTED_PLATFORM_CODE","UNSUPPORTED_PLATFORM_MESSAGE"],"sources":["Helpers.ts"],"sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, Permission, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\nimport { OkHiException } from './OkHiException';\n\n/**\n * Checks whether location services are enabled\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the service is available\n */\nexport const isLocationServicesEnabled = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationServicesEnabled);\n};\n\n/**\n * Checks whether when in use location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isLocationPermissionGranted = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationPermissionGranted);\n};\n\nconst isBackgroundLocationPermissionGrantedAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) {\n return true;\n }\n if (Number(sdkVersion) < 29) {\n return await isLocationPermissionGranted();\n }\n if (\n typeof PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION !==\n 'undefined'\n ) {\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION as Permission\n );\n return hasPermission;\n }\n console.warn(\n `PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION is undefined, this is an issue with the current version of RN you are running. Please consider upgrading`\n );\n return false;\n };\n\nconst isBackgroundLocationPermissionGrantedIOS = (): Promise<boolean> => {\n return OkHiNativeModule.isBackgroundLocationPermissionGranted();\n};\n\n/**\n * Checks whether background location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isBackgroundLocationPermissionGranted = (): Promise<boolean> => {\n const fn =\n Platform.OS === 'android'\n ? isBackgroundLocationPermissionGrantedAndroid\n : isBackgroundLocationPermissionGrantedIOS;\n return isValidPlatform(fn);\n};\n\nconst requestLocationPermissionAndroid = async (): Promise<boolean> => {\n const status: any = await PermissionsAndroid.requestMultiple([\n PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION as Permission,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION as Permission,\n ]);\n return status['android.permission.ACCESS_FINE_LOCATION'] === 'granted';\n};\n\nconst requestLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestLocationPermission();\n};\n\n/**\n * Requests for when in use location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestLocationPermission = async (): Promise<boolean> => {\n const isGranted = await isLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestLocationPermissionAndroid\n : requestLocationPermissionIOS\n );\n};\n\nconst requestBackgroundLocationPermissionAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) return true;\n if (Number(sdkVersion) >= 29) {\n const permissions: any = [\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,\n ];\n const status: any = await PermissionsAndroid.requestMultiple(permissions);\n return (\n status['android.permission.ACCESS_BACKGROUND_LOCATION'] === 'granted'\n );\n } else {\n return await requestLocationPermissionAndroid();\n }\n };\n\nconst requestBackgroundLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestBackgroundLocationPermission();\n};\n\n/**\n * Requests for background location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestBackgroundLocationPermission =\n async (): Promise<boolean> => {\n const isGranted = await isBackgroundLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestBackgroundLocationPermissionAndroid\n : requestBackgroundLocationPermissionIOS\n );\n };\n\n/**\n * Requests the user to enable location services by showing an in app modal on android and opening location settings on iOS\n * @returns {Promise<boolean>} A promise that resolves to either a boolean value on android or null on iOS\n */\nexport const requestEnableLocationServices = (): Promise<boolean | null> => {\n return isValidPlatform(OkHiNativeModule.requestEnableLocationServices);\n};\n\n/**\n * Android Only - Checks if Google Play Services is available\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const isGooglePlayServicesAvailable = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.isGooglePlayServicesAvailable,\n 'android'\n );\n};\n\n/**\n * Android Only - Requests user to enable Google Play Services\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const requestEnableGooglePlayServices = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.requestEnableGooglePlayServices,\n 'android'\n );\n};\n\n/**\n * Returns the system version of the current platform\n * @returns {Promise<boolean>} A promise that resolves either a string on iOS or number on Android\n */\nexport const getSystemVersion = (): Promise<string | number> =>\n isValidPlatform(OkHiNativeModule.getSystemVersion);\n\n/**\n * Requests location permission from the user. It'll also attempt to activate any disbaled services (Android Only)\n */\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n denyButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\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\n const googlePlayError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Google Play Services is currently unavailable. Please enable in settings',\n });\n\n const handleError = (error: OkHiException) => {\n callback(null, error);\n };\n\n const handleGooglePlayServiceRequest = () => {\n requestEnableGooglePlayServices().then((googlePlayStatus) => {\n if (!googlePlayStatus) {\n handleError(googlePlayError);\n } else {\n handleRationaleRequest();\n }\n });\n };\n\n const handleRationaleAlert = (alertRationale: {\n title: string;\n text: string;\n grantButton?: { label: string };\n denyButton?: { label: string };\n }) => {\n return new Promise((resolve, _) => {\n Alert.alert(\n alertRationale.title,\n alertRationale.text,\n [\n {\n text: alertRationale.grantButton\n ? alertRationale.grantButton.label\n : 'Grant',\n onPress: () => {\n resolve(true);\n },\n },\n {\n text: alertRationale.denyButton\n ? alertRationale.denyButton.label\n : 'Deny',\n onPress: () => {\n resolve(false);\n },\n style: 'cancel',\n },\n ],\n {\n onDismiss: () => {\n resolve(false);\n },\n }\n );\n });\n };\n\n const handlePermissionRequest = () => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener(\n 'onLocationPermissionStatusUpdate',\n (permissionUpdate) => {\n callback(permissionUpdate, null);\n }\n );\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((whenInUseResult) =>\n callback(whenInUseResult ? 'authorizedWhenInUse' : 'denied', null)\n );\n } else {\n requestLocationPermissionAndroid().then((initialWhenInUseResult) => {\n if (!initialWhenInUseResult) {\n callback('denied', null);\n } else {\n callback('authorizedWhenInUse', null);\n requestBackgroundLocationPermission().then((alwaysResult) => {\n callback(\n alwaysResult ? 'authorizedAlways' : 'authorizedWhenInUse',\n null\n );\n });\n }\n });\n }\n }\n };\n\n const handleRationaleRequest = async () => {\n const currentStatus = await retriveLocationPermissionStatus();\n let showRationale = true;\n if (\n locationPermissionType === 'whenInUse' &&\n (currentStatus === 'authorizedWhenInUse' ||\n currentStatus === 'authorizedAlways')\n ) {\n showRationale = false;\n }\n if (\n locationPermissionType === 'always' &&\n currentStatus === 'authorizedAlways'\n ) {\n showRationale = false;\n }\n if (rationale && showRationale) {\n const result = await handleRationaleAlert(rationale);\n if (!result) {\n callback('rationaleDissmissed', null);\n } else {\n handlePermissionRequest();\n }\n } else {\n handlePermissionRequest();\n }\n };\n\n isLocationServicesEnabled()\n .then((serviceStatus) => {\n if (!serviceStatus && Platform.OS === 'ios') {\n handleError(serviceError);\n } else if (!serviceStatus && Platform.OS === 'android') {\n requestEnableLocationServices()\n .then((enableResult) => {\n if (!enableResult) {\n handleError(serviceError);\n } else {\n handleGooglePlayServiceRequest();\n }\n })\n .catch(handleError);\n } else {\n if (Platform.OS === 'ios') {\n handleRationaleRequest();\n } else {\n handleGooglePlayServiceRequest();\n }\n }\n })\n .catch(handleError);\n};\n\n/**\n * Open the device's app settings.\n */\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\n\n/**\n * Retrives the location permission status from the device\n */\nexport const retriveLocationPermissionStatus =\n async (): Promise<LocationPermissionStatus> => {\n if (Platform.OS === 'ios') {\n return OkHiNativeModule.retriveLocationPermissionStatus() as Promise<LocationPermissionStatus>;\n }\n const alwaysPerm = await isBackgroundLocationPermissionGranted();\n if (alwaysPerm) {\n return 'authorizedAlways';\n }\n const whenInUsePerm = await isLocationPermissionGranted();\n return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';\n };\n\n/**\n * Requests tracking authorization from the user. iOS only, iOS version >= 14\n * Read more: https://developer.apple.com/app-store/user-privacy-and-data-use/\n */\nexport const requestTrackingAuthorization = async (): Promise<\n string | null\n> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.requestTrackingAuthorization();\n return result;\n }, 'ios');\n};\n\n/**\n * Checks whether current device can open \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const canOpenProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.canOpenProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\n/**\n * Opens \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const openProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.openProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\nconst isAndroidNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 33) {\n return true;\n }\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return hasPermission;\n }, 'android');\n};\n\nconst requestAndroidNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isAndroidNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n const status: any = await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission\n );\n return status === 'granted';\n }, 'android');\n};\n\nconst isIOSNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n return OkHiNativeModule.isNotificationPermissionGranted();\n }, 'ios');\n};\n\nconst requestIOSNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isIOSNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n return OkHiNativeModule.requestNotificationPermission();\n }, 'ios');\n};\n\n/**\n * Checks whether notification permission is granted on both android and ios devices\n */\nexport const isNotificationPermissionGranted = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return isAndroidNotificationGranted();\n } else if (Platform.OS === 'ios') {\n return isIOSNotificationGranted();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Requests notification permission from both android and ios devices\n */\nexport const requestNotificationPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return requestAndroidNotificationPermission();\n } else if (Platform.OS === 'ios') {\n return requestIOSNotificationPermission();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -40,6 +40,8 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
|
|
|
40
40
|
|
|
41
41
|
const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;
|
|
42
42
|
const webViewRef = useRef<WebView | null>(null);
|
|
43
|
+
const startMessage =
|
|
44
|
+
props.mode === 'create' ? 'start_app' : 'select_location';
|
|
43
45
|
|
|
44
46
|
useEffect(() => {
|
|
45
47
|
if (applicationConfiguration == null && token == null && user.phone) {
|
|
@@ -79,7 +81,7 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
|
|
|
79
81
|
OkHiNativeModule.setItem(
|
|
80
82
|
'okcollect-launch-payload',
|
|
81
83
|
JSON.stringify({
|
|
82
|
-
message:
|
|
84
|
+
message: startMessage,
|
|
83
85
|
payload: startPayload,
|
|
84
86
|
url: getFrameUrl(applicationConfiguration),
|
|
85
87
|
})
|
|
@@ -175,7 +177,7 @@ export const OkHiLocationManager = (props: OkHiLocationManagerProps) => {
|
|
|
175
177
|
}
|
|
176
178
|
|
|
177
179
|
const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({
|
|
178
|
-
message:
|
|
180
|
+
message: startMessage,
|
|
179
181
|
payload: startPayload,
|
|
180
182
|
});
|
|
181
183
|
|
package/src/OkCollect/app.json
CHANGED
package/src/OkCollect/types.ts
CHANGED
package/src/OkCore/Helpers.ts
CHANGED
|
@@ -410,7 +410,7 @@ const requestAndroidNotificationPermission = async (): Promise<boolean> => {
|
|
|
410
410
|
const status: any = await PermissionsAndroid.request(
|
|
411
411
|
PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission
|
|
412
412
|
);
|
|
413
|
-
return status
|
|
413
|
+
return status === 'granted';
|
|
414
414
|
}, 'android');
|
|
415
415
|
};
|
|
416
416
|
|