react-native-okhi 1.0.13-beta.1 → 1.0.13-beta.12
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/.DS_Store +0 -0
- package/android/.idea/workspace.xml +11 -10
- package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +21 -0
- package/ios/.DS_Store +0 -0
- package/ios/Okhi-Bridging-Header.h +1 -0
- package/ios/Okhi.m +6 -1
- package/ios/Okhi.swift +70 -18
- package/ios/Okhi.xcodeproj/project.xcworkspace/xcuserdata/kiano.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/lib/commonjs/OkCollect/OkHiLocationManager.js +18 -5
- package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/commonjs/OkCore/Helpers.js +69 -1
- package/lib/commonjs/OkCore/Helpers.js.map +1 -1
- package/lib/commonjs/OkCore/OkHiAuth.js +5 -2
- package/lib/commonjs/OkCore/OkHiAuth.js.map +1 -1
- package/lib/commonjs/OkCore/OkHiException.js +12 -0
- package/lib/commonjs/OkCore/OkHiException.js.map +1 -1
- package/lib/commonjs/OkCore/index.js +2 -2
- package/lib/commonjs/OkCore/index.js.map +1 -1
- package/lib/commonjs/OkHiNativeModule/index.js +4 -1
- package/lib/commonjs/OkHiNativeModule/index.js.map +1 -1
- package/lib/commonjs/OkVerify/index.js +73 -15
- package/lib/commonjs/OkVerify/index.js.map +1 -1
- package/lib/module/OkCollect/OkHiLocationManager.js +18 -5
- package/lib/module/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/module/OkCore/Helpers.js +61 -3
- package/lib/module/OkCore/Helpers.js.map +1 -1
- package/lib/module/OkCore/OkHiAuth.js +5 -2
- package/lib/module/OkCore/OkHiAuth.js.map +1 -1
- package/lib/module/OkCore/OkHiException.js +12 -0
- package/lib/module/OkCore/OkHiException.js.map +1 -1
- package/lib/module/OkCore/index.js +2 -2
- package/lib/module/OkCore/index.js.map +1 -1
- package/lib/module/OkHiNativeModule/index.js +3 -1
- package/lib/module/OkHiNativeModule/index.js.map +1 -1
- package/lib/module/OkVerify/index.js +67 -13
- package/lib/module/OkVerify/index.js.map +1 -1
- package/lib/typescript/OkCore/Helpers.d.ts +10 -0
- package/lib/typescript/OkCore/OkHiAuth.d.ts +3 -2
- package/lib/typescript/OkCore/OkHiException.d.ts +8 -0
- package/lib/typescript/OkCore/types.d.ts +3 -0
- package/lib/typescript/OkHiNativeModule/index.d.ts +4 -0
- package/lib/typescript/OkVerify/index.d.ts +5 -0
- package/package.json +1 -1
- package/react-native-okhi.podspec +1 -2
- package/src/OkCollect/OkHiLocationManager.tsx +24 -9
- package/src/OkCore/Helpers.ts +85 -2
- package/src/OkCore/OkHiAuth.ts +6 -3
- package/src/OkCore/OkHiException.ts +9 -0
- package/src/OkCore/index.ts +1 -1
- package/src/OkCore/types.ts +15 -0
- package/src/OkHiNativeModule/index.ts +7 -1
- package/src/OkVerify/index.ts +73 -18
- package/android/.idea/gradle.xml +0 -19
- package/android/.idea/misc.xml +0 -9
- package/android/.idea/modules/android.iml +0 -18
- package/android/.idea/modules.xml +0 -8
- package/android/.idea/vcs.xml +0 -6
|
Binary file
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<project version="4">
|
|
3
|
+
<component name="AutoImportSettings">
|
|
4
|
+
<option name="autoReloadType" value="NONE" />
|
|
5
|
+
</component>
|
|
3
6
|
<component name="ChangeListManager">
|
|
4
|
-
<list default="true" id="f4e10cac-e2ae-4a1b-8fdb-d5cca8fffe82" name="Default Changelist" comment=""
|
|
5
|
-
<change beforePath="$PROJECT_DIR$/../example/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/../example/index.tsx" afterDir="false" />
|
|
6
|
-
<change beforePath="$PROJECT_DIR$/../example/ios/OkhiExample/AppDelegate.m" beforeDir="false" afterPath="$PROJECT_DIR$/../example/ios/OkhiExample/AppDelegate.m" afterDir="false" />
|
|
7
|
-
<change beforePath="$PROJECT_DIR$/../example/ios/OkhiExample/Info.plist" beforeDir="false" afterPath="$PROJECT_DIR$/../example/ios/OkhiExample/Info.plist" afterDir="false" />
|
|
8
|
-
<change beforePath="$PROJECT_DIR$/../example/ios/Podfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/../example/ios/Podfile.lock" afterDir="false" />
|
|
9
|
-
<change beforePath="$PROJECT_DIR$/../example/src/App.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/../example/src/App.tsx" afterDir="false" />
|
|
10
|
-
<change beforePath="$PROJECT_DIR$/../example/yarn.lock" beforeDir="false" afterPath="$PROJECT_DIR$/../example/yarn.lock" afterDir="false" />
|
|
11
|
-
<change beforePath="$PROJECT_DIR$/../ios/Okhi.swift" beforeDir="false" afterPath="$PROJECT_DIR$/../ios/Okhi.swift" afterDir="false" />
|
|
12
|
-
<change beforePath="$PROJECT_DIR$/../src/OkCore/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../src/OkCore/index.ts" afterDir="false" />
|
|
13
|
-
</list>
|
|
7
|
+
<list default="true" id="f4e10cac-e2ae-4a1b-8fdb-d5cca8fffe82" name="Default Changelist" comment="" />
|
|
14
8
|
<option name="SHOW_DIALOG" value="false" />
|
|
15
9
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
16
10
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
17
11
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
18
12
|
</component>
|
|
13
|
+
<component name="ExternalProjectsData">
|
|
14
|
+
<projectState path="$PROJECT_DIR$">
|
|
15
|
+
<ProjectState />
|
|
16
|
+
</projectState>
|
|
17
|
+
</component>
|
|
19
18
|
<component name="Git.Settings">
|
|
20
19
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
|
21
20
|
</component>
|
|
@@ -28,7 +27,9 @@
|
|
|
28
27
|
<component name="PropertiesComponent">
|
|
29
28
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
|
30
29
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
|
30
|
+
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
|
31
31
|
</component>
|
|
32
|
+
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
|
32
33
|
<component name="TaskManager">
|
|
33
34
|
<task active="true" id="Default" summary="Default task">
|
|
34
35
|
<changelist id="f4e10cac-e2ae-4a1b-8fdb-d5cca8fffe82" name="Default Changelist" comment="" />
|
|
@@ -3,7 +3,9 @@ package com.reactnativeokhi;
|
|
|
3
3
|
import android.app.Activity;
|
|
4
4
|
import android.app.NotificationManager;
|
|
5
5
|
import android.content.Intent;
|
|
6
|
+
import android.net.Uri;
|
|
6
7
|
import android.os.Build;
|
|
8
|
+
import android.provider.Settings;
|
|
7
9
|
import android.util.Base64;
|
|
8
10
|
|
|
9
11
|
import androidx.annotation.NonNull;
|
|
@@ -247,6 +249,25 @@ public class OkhiModule extends ReactContextBaseJavaModule {
|
|
|
247
249
|
promise.resolve(result);
|
|
248
250
|
}
|
|
249
251
|
|
|
252
|
+
@ReactMethod
|
|
253
|
+
public void openAppSettings(Promise promise) {
|
|
254
|
+
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
|
255
|
+
Uri uri = Uri.fromParts("package", getReactApplicationContext().getPackageName(), null);
|
|
256
|
+
intent.setData(uri);
|
|
257
|
+
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
258
|
+
getReactApplicationContext().startActivity(intent);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
@ReactMethod
|
|
262
|
+
public void addListener(String eventName) {
|
|
263
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@ReactMethod
|
|
267
|
+
public void removeListeners(Integer count) {
|
|
268
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
269
|
+
}
|
|
270
|
+
|
|
250
271
|
private Dynamic getConfig(ReadableMap map, String prop) {
|
|
251
272
|
if (map != null && map.hasKey("android")) {
|
|
252
273
|
ReadableMap config = map.getMap("android");
|
package/ios/.DS_Store
ADDED
|
Binary file
|
package/ios/Okhi.m
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import "React/RCTEventEmitter.h"
|
|
2
3
|
|
|
3
|
-
@interface RCT_EXTERN_MODULE(Okhi,
|
|
4
|
+
@interface RCT_EXTERN_MODULE(Okhi, RCTEventEmitter)
|
|
4
5
|
|
|
5
6
|
RCT_EXTERN_METHOD(multiply:(float)a withB:(float)b
|
|
6
7
|
withResolver:(RCTPromiseResolveBlock)resolve
|
|
@@ -18,6 +19,8 @@ RCT_EXTERN_METHOD(requestBackgroundLocationPermission: (RCTPromiseResolveBlock)r
|
|
|
18
19
|
|
|
19
20
|
RCT_EXTERN_METHOD(requestEnableLocationServices: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
20
21
|
|
|
22
|
+
RCT_EXTERN_METHOD(openAppSettings: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
23
|
+
|
|
21
24
|
RCT_EXTERN_METHOD(getSystemVersion: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
22
25
|
|
|
23
26
|
RCT_EXTERN_METHOD(getApplicationConfiguration: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
@@ -32,4 +35,6 @@ RCT_EXTERN_METHOD(startAddressVerification:(NSString *)phoneNumber locationId:(N
|
|
|
32
35
|
|
|
33
36
|
RCT_EXTERN_METHOD(stopAddressVerification:(NSString *)phoneNumber locationId:(NSString *)locationId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
34
37
|
|
|
38
|
+
RCT_EXTERN_METHOD(retriveLocationPermissionStatus: (RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
39
|
+
|
|
35
40
|
@end
|
package/ios/Okhi.swift
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import UIKit
|
|
2
|
-
import
|
|
2
|
+
import OkHi
|
|
3
3
|
import CoreLocation
|
|
4
4
|
|
|
5
5
|
@objc(Okhi)
|
|
6
|
-
class Okhi:
|
|
6
|
+
class Okhi: RCTEventEmitter {
|
|
7
7
|
private enum LocationPermissionRequestType: String {
|
|
8
8
|
case whenInUse = "whenInUse"
|
|
9
9
|
case always = "always"
|
|
@@ -11,15 +11,18 @@ class Okhi: NSObject {
|
|
|
11
11
|
private var currentLocationPermissionRequestType: LocationPermissionRequestType = .always
|
|
12
12
|
private var resolve: RCTPromiseResolveBlock?
|
|
13
13
|
private var reject: RCTPromiseRejectBlock?
|
|
14
|
-
private var
|
|
14
|
+
private var initResolve: RCTPromiseResolveBlock?
|
|
15
|
+
private var initReject: RCTPromiseRejectBlock?
|
|
16
|
+
private var okVerify: OkVerify
|
|
17
|
+
|
|
15
18
|
|
|
16
19
|
override init() {
|
|
17
|
-
okVerify =
|
|
20
|
+
okVerify = OkVerify()
|
|
18
21
|
super.init()
|
|
19
22
|
okVerify.delegate = self
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
override static func requiresMainQueueSetup() -> Bool {
|
|
23
26
|
return false
|
|
24
27
|
}
|
|
25
28
|
|
|
@@ -57,7 +60,14 @@ class Okhi: NSObject {
|
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
@objc func requestEnableLocationServices(_ resolve: RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
|
|
60
|
-
|
|
63
|
+
if let url = URL.init(string: UIApplication.openSettingsURLString) {
|
|
64
|
+
UIApplication.shared.open(url, options: [:], completionHandler: nil)
|
|
65
|
+
}
|
|
66
|
+
resolve(NSNull())
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@objc func openAppSettings(_ resolve: RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
|
|
70
|
+
OkVerify.openAppSettings()
|
|
61
71
|
resolve(NSNull())
|
|
62
72
|
}
|
|
63
73
|
|
|
@@ -66,8 +76,8 @@ class Okhi: NSObject {
|
|
|
66
76
|
}
|
|
67
77
|
|
|
68
78
|
@objc func initializeIOS(_ branchId: String, clientKey: String, environment: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
69
|
-
self.
|
|
70
|
-
self.
|
|
79
|
+
self.initResolve = resolve
|
|
80
|
+
self.initReject = reject
|
|
71
81
|
okVerify.initialize(with: branchId, clientKey: clientKey, environment: environment)
|
|
72
82
|
}
|
|
73
83
|
|
|
@@ -82,6 +92,37 @@ class Okhi: NSObject {
|
|
|
82
92
|
self.reject = reject
|
|
83
93
|
okVerify.stopAddressVerification(locationId: locationId)
|
|
84
94
|
}
|
|
95
|
+
|
|
96
|
+
@objc func retriveLocationPermissionStatus(_ resolve: RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
|
|
97
|
+
let manager = CLLocationManager()
|
|
98
|
+
let status = fetchLocationPermissionStatus(status: getLocationAuthorizationStatus(manager: manager))
|
|
99
|
+
resolve(status)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
override func supportedEvents() -> [String]! {
|
|
103
|
+
return ["onLocationPermissionStatusUpdate"]
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
private func fetchLocationPermissionStatus(status: CLAuthorizationStatus) -> String {
|
|
107
|
+
var str: String = ""
|
|
108
|
+
switch status {
|
|
109
|
+
case .notDetermined:
|
|
110
|
+
str = "notDetermined"
|
|
111
|
+
case .restricted:
|
|
112
|
+
str = "restricted"
|
|
113
|
+
case .denied:
|
|
114
|
+
str = "denied"
|
|
115
|
+
case .authorizedAlways:
|
|
116
|
+
str = "authorizedAlways"
|
|
117
|
+
case .authorizedWhenInUse:
|
|
118
|
+
str = "authorizedWhenInUse"
|
|
119
|
+
case .authorized:
|
|
120
|
+
str = "authorized"
|
|
121
|
+
@unknown default:
|
|
122
|
+
str = "unknown"
|
|
123
|
+
}
|
|
124
|
+
return str
|
|
125
|
+
}
|
|
85
126
|
}
|
|
86
127
|
|
|
87
128
|
// MARK: - OkHi Utils
|
|
@@ -97,7 +138,11 @@ extension Okhi {
|
|
|
97
138
|
|
|
98
139
|
// MARK: - OkVerify Delegates
|
|
99
140
|
extension Okhi: OkVerifyDelegate {
|
|
100
|
-
func verify(_ okverify:
|
|
141
|
+
func verify(_ okverify: OkVerify, didUpdateLocationPermissionStatus status: CLAuthorizationStatus) {
|
|
142
|
+
sendEvent(withName: "onLocationPermissionStatusUpdate", body: fetchLocationPermissionStatus(status: status))
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
func verify(_ okverify: OkVerify, didChangeLocationPermissionStatus requestType: OkVerifyLocationPermissionRequestType, status: Bool) {
|
|
101
146
|
if let resolve = self.resolve {
|
|
102
147
|
if currentLocationPermissionRequestType == .whenInUse && requestType == .whenInUse {
|
|
103
148
|
resolve(status)
|
|
@@ -109,25 +154,32 @@ extension Okhi: OkVerifyDelegate {
|
|
|
109
154
|
}
|
|
110
155
|
}
|
|
111
156
|
|
|
112
|
-
func verify(_ okverify:
|
|
113
|
-
guard let resolve =
|
|
157
|
+
func verify(_ okverify: OkVerify, didInitialize result: Bool) {
|
|
158
|
+
guard let resolve = initResolve else { return }
|
|
114
159
|
resolve(result)
|
|
115
|
-
self.
|
|
160
|
+
self.initResolve = nil
|
|
161
|
+
self.initReject = nil
|
|
116
162
|
}
|
|
117
163
|
|
|
118
|
-
func verify(_ okverify:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
164
|
+
func verify(_ okverify: OkVerify, didEncounterError error: OkVerifyError) {
|
|
165
|
+
if let initReject = initReject {
|
|
166
|
+
initReject(error.code, error.message, error)
|
|
167
|
+
self.initResolve = nil
|
|
168
|
+
self.initReject = nil
|
|
169
|
+
} else {
|
|
170
|
+
guard let reject = reject else { return }
|
|
171
|
+
reject(error.code, error.message, error)
|
|
172
|
+
self.reject = nil
|
|
173
|
+
}
|
|
122
174
|
}
|
|
123
175
|
|
|
124
|
-
func verify(_ okverify:
|
|
176
|
+
func verify(_ okverify: OkVerify, didStartAddressVerificationFor locationId: String) {
|
|
125
177
|
guard let resolve = resolve else { return }
|
|
126
178
|
resolve(locationId)
|
|
127
179
|
self.resolve = nil
|
|
128
180
|
}
|
|
129
181
|
|
|
130
|
-
func verify(_ okverify:
|
|
182
|
+
func verify(_ okverify: OkVerify, didStopVerificationFor locationId: String) {
|
|
131
183
|
guard let resolve = resolve else { return }
|
|
132
184
|
resolve(locationId)
|
|
133
185
|
self.resolve = nil
|
|
Binary file
|
|
@@ -48,12 +48,25 @@ const OkHiLocationManager = props => {
|
|
|
48
48
|
launch
|
|
49
49
|
} = props;
|
|
50
50
|
(0, _react.useEffect)(() => {
|
|
51
|
-
if (user.phone) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
if (applicationConfiguration == null && token == null && user.phone) {
|
|
52
|
+
(0, _OkCore.getApplicationConfiguration)().then(config => {
|
|
53
|
+
if (!config && launch) {
|
|
54
|
+
onError(new _OkHiException.OkHiException({
|
|
55
|
+
code: _OkHiException.OkHiException.UNAUTHORIZED_CODE,
|
|
56
|
+
message: _OkHiException.OkHiException.UNAUTHORIZED_MESSAGE
|
|
57
|
+
}));
|
|
58
|
+
} else if (config) {
|
|
59
|
+
setApplicationConfiguration(config);
|
|
60
|
+
const auth = new _OkHiAuth.OkHiAuth();
|
|
61
|
+
auth.anonymousSignInWithPhoneNumber(user.phone, ['address'], config).then(setToken).catch(onError);
|
|
62
|
+
}
|
|
63
|
+
}).catch(error => {
|
|
64
|
+
if (launch) {
|
|
65
|
+
onError(error);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
55
68
|
}
|
|
56
|
-
}, [onError, user.phone]);
|
|
69
|
+
}, [onError, user.phone, launch, applicationConfiguration, token]);
|
|
57
70
|
|
|
58
71
|
const handleOnMessage = _ref => {
|
|
59
72
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OkHiLocationManager.tsx"],"names":["OkHiLocationManager","props","token","setToken","applicationConfiguration","setApplicationConfiguration","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","phone","auth","OkHiAuth","anonymousSignInWithPhoneNumber","then","catch","handleOnMessage","nativeEvent","data","response","JSON","parse","message","OkHiException","code","UNKNOWN_ERROR_CODE","payload","toString","location","startVerification","config","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","lat","lon","error","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","renderContent","jsAfterLoad","jsBeforeLoad","uri","Platform","OS","undefined"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } 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} 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 { getApplicationConfiguration } from '../OkCore';\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 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\n useEffect(() => {\n if (user.phone) {\n const auth = new OkHiAuth();\n auth\n .anonymousSignInWithPhoneNumber(user.phone, ['address'])\n .then(setToken)\n .catch(onError);\n getApplicationConfiguration()\n .then(setApplicationConfiguration)\n .catch(onError);\n }\n }, [onError, user.phone]);\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 {\n onSuccess({\n ...response.payload,\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 )\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 renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: 'select_location',\n payload: generateStartDataPayload(props, token, applicationConfiguration),\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 />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal animationType=\"slide\" transparent={false} visible={launch}>\n {launch ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"]}
|
|
1
|
+
{"version":3,"sources":["OkHiLocationManager.tsx"],"names":["OkHiLocationManager","props","token","setToken","applicationConfiguration","setApplicationConfiguration","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","phone","then","config","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","OkHiAuth","anonymousSignInWithPhoneNumber","catch","error","handleOnMessage","nativeEvent","data","response","JSON","parse","UNKNOWN_ERROR_CODE","payload","toString","location","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","renderContent","jsAfterLoad","jsBeforeLoad","uri","Platform","OS","undefined"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } 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} 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 { getApplicationConfiguration } from '../OkCore';\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 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\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, ['address'], 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 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 {\n onSuccess({\n ...response.payload,\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 )\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 renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: 'select_location',\n payload: generateStartDataPayload(props, token, applicationConfiguration),\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 />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal animationType=\"slide\" transparent={false} visible={launch}>\n {launch ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.requestLocationPermission = exports.requestEnableLocationServices = exports.requestEnableGooglePlayServices = exports.requestBackgroundLocationPermission = exports.isLocationServicesEnabled = exports.isLocationPermissionGranted = exports.isGooglePlayServicesAvailable = exports.isBackgroundLocationPermissionGranted = exports.getSystemVersion = void 0;
|
|
6
|
+
exports.retriveLocationPermissionStatus = exports.requestLocationPermission = exports.requestEnableLocationServices = exports.requestEnableGooglePlayServices = exports.requestBackgroundLocationPermission = exports.request = exports.openAppSettings = exports.isLocationServicesEnabled = exports.isLocationPermissionGranted = exports.isGooglePlayServicesAvailable = exports.isBackgroundLocationPermissionGranted = exports.getSystemVersion = void 0;
|
|
7
7
|
|
|
8
8
|
var _OkHiNativeModule = require("../OkHiNativeModule");
|
|
9
9
|
|
|
@@ -156,4 +156,72 @@ exports.requestEnableGooglePlayServices = requestEnableGooglePlayServices;
|
|
|
156
156
|
const getSystemVersion = () => (0, _helpers.isValidPlatform)(_OkHiNativeModule.OkHiNativeModule.getSystemVersion);
|
|
157
157
|
|
|
158
158
|
exports.getSystemVersion = getSystemVersion;
|
|
159
|
+
|
|
160
|
+
const request = (locationPermissionType, rationale, callback) => {
|
|
161
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
162
|
+
_OkHiNativeModule.OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');
|
|
163
|
+
|
|
164
|
+
_OkHiNativeModule.OkHiNativeEvents.addListener('onLocationPermissionStatusUpdate', callback);
|
|
165
|
+
|
|
166
|
+
if (locationPermissionType === 'whenInUse') {
|
|
167
|
+
_OkHiNativeModule.OkHiNativeModule.requestLocationPermission();
|
|
168
|
+
} else {
|
|
169
|
+
_OkHiNativeModule.OkHiNativeModule.requestBackgroundLocationPermission();
|
|
170
|
+
}
|
|
171
|
+
} else {
|
|
172
|
+
if (locationPermissionType === 'whenInUse') {
|
|
173
|
+
requestLocationPermissionAndroid().then(result => callback(result ? 'authorizedWhenInUse' : 'denied'));
|
|
174
|
+
} else {
|
|
175
|
+
requestLocationPermissionAndroid().then(async whenInUseResult => {
|
|
176
|
+
if (whenInUseResult) {
|
|
177
|
+
const version = await getSystemVersion();
|
|
178
|
+
|
|
179
|
+
if (version >= 30 && rationale) {
|
|
180
|
+
_reactNative.Alert.alert(rationale.title, rationale.text, [{
|
|
181
|
+
text: rationale.successButton ? rationale.successButton.label : 'Okay',
|
|
182
|
+
onPress: async () => {
|
|
183
|
+
const result = await requestBackgroundLocationPermission();
|
|
184
|
+
callback(result ? 'authorizedAlways' : 'authorizedWhenInUse');
|
|
185
|
+
}
|
|
186
|
+
}], {
|
|
187
|
+
onDismiss: () => {
|
|
188
|
+
callback('authorizedWhenInUse');
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
} else {
|
|
192
|
+
const permission = await requestBackgroundLocationPermission();
|
|
193
|
+
callback(permission ? 'authorizedAlways' : 'authorizedWhenInUse');
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
callback('denied');
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
exports.request = request;
|
|
204
|
+
|
|
205
|
+
const openAppSettings = () => {
|
|
206
|
+
_OkHiNativeModule.OkHiNativeModule.openAppSettings();
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
exports.openAppSettings = openAppSettings;
|
|
210
|
+
|
|
211
|
+
const retriveLocationPermissionStatus = async () => {
|
|
212
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
213
|
+
return _OkHiNativeModule.OkHiNativeModule.retriveLocationPermissionStatus();
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const alwaysPerm = await isBackgroundLocationPermissionGranted();
|
|
217
|
+
|
|
218
|
+
if (alwaysPerm) {
|
|
219
|
+
return 'authorizedAlways';
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const whenInUsePerm = await isLocationPermissionGranted();
|
|
223
|
+
return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
exports.retriveLocationPermissionStatus = retriveLocationPermissionStatus;
|
|
159
227
|
//# sourceMappingURL=Helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Helpers.ts"],"names":["isLocationServicesEnabled","OkHiNativeModule","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","hasPermission","PermissionsAndroid","check","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","Platform","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices"],"mappings":"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","sourcesContent":["import { OkHiNativeModule } from '../OkHiNativeModule';\nimport { PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\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 (sdkVersion < 23) {\n return true;\n }\n if (sdkVersion < 29) {\n return await isLocationPermissionGranted();\n }\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION\n );\n return hasPermission;\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,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,\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 (sdkVersion < 23) return true;\n if (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"]}
|
|
1
|
+
{"version":3,"sources":["Helpers.ts"],"names":["isLocationServicesEnabled","OkHiNativeModule","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","hasPermission","PermissionsAndroid","check","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","Platform","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","OkHiNativeEvents","removeAllListeners","addListener","then","result","whenInUseResult","version","Alert","alert","title","text","successButton","label","onPress","onDismiss","permission","openAppSettings","retriveLocationPermissionStatus","alwaysPerm","whenInUsePerm"],"mappings":"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","sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\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 (sdkVersion < 23) {\n return true;\n }\n if (sdkVersion < 29) {\n return await isLocationPermissionGranted();\n }\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION\n );\n return hasPermission;\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,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,\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 (sdkVersion < 23) return true;\n if (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\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\n) => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener('onLocationPermissionStatusUpdate', callback);\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((result) =>\n callback(result ? 'authorizedWhenInUse' : 'denied')\n );\n } else {\n requestLocationPermissionAndroid().then(async (whenInUseResult) => {\n if (whenInUseResult) {\n const version = await getSystemVersion();\n if (version >= 30 && rationale) {\n Alert.alert(\n rationale.title,\n rationale.text,\n [\n {\n text: rationale.successButton\n ? rationale.successButton.label\n : 'Okay',\n onPress: async () => {\n const result = await requestBackgroundLocationPermission();\n callback(\n result ? 'authorizedAlways' : 'authorizedWhenInUse'\n );\n },\n },\n ],\n {\n onDismiss: () => {\n callback('authorizedWhenInUse');\n },\n }\n );\n } else {\n const permission = await requestBackgroundLocationPermission();\n callback(permission ? 'authorizedAlways' : 'authorizedWhenInUse');\n }\n } else {\n callback('denied');\n }\n });\n }\n }\n};\n\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\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"]}
|
|
@@ -31,9 +31,12 @@ class OkHiAuth {
|
|
|
31
31
|
_defineProperty(this, "SANDBOX_BASE_URL", `https://sandbox-api.okhi.io/${this.API_VERSION}` + this.ANONYMOUS_SIGN_IN_ENDPOINT);
|
|
32
32
|
|
|
33
33
|
_defineProperty(this, "PROD_BASE_URL", `https://api.okhi.io/${this.API_VERSION}` + this.ANONYMOUS_SIGN_IN_ENDPOINT);
|
|
34
|
+
|
|
35
|
+
_defineProperty(this, "config", null);
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
anonymousSignInWithPhoneNumber(phone, scopes) {
|
|
38
|
+
anonymousSignInWithPhoneNumber(phone, scopes, config) {
|
|
39
|
+
this.config = config;
|
|
37
40
|
return this.anonymousSignIn({
|
|
38
41
|
scopes,
|
|
39
42
|
phone
|
|
@@ -50,7 +53,7 @@ class OkHiAuth {
|
|
|
50
53
|
async anonymousSignIn(payload) {
|
|
51
54
|
return new Promise(async (resolve, reject) => {
|
|
52
55
|
try {
|
|
53
|
-
const config = await (0, _.getApplicationConfiguration)();
|
|
56
|
+
const config = this.config || (await (0, _.getApplicationConfiguration)());
|
|
54
57
|
|
|
55
58
|
if (config === null || !config.auth || !config.auth.token) {
|
|
56
59
|
reject(new _OkHiException.OkHiException({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OkHiAuth.ts"],"names":["OkHiAuth","API_VERSION","ANONYMOUS_SIGN_IN_ENDPOINT","anonymousSignInWithPhoneNumber","phone","scopes","anonymousSignIn","anonymousSignInWithUserId","userId","user_id","payload","Promise","resolve","reject","
|
|
1
|
+
{"version":3,"sources":["OkHiAuth.ts"],"names":["OkHiAuth","API_VERSION","ANONYMOUS_SIGN_IN_ENDPOINT","anonymousSignInWithPhoneNumber","phone","scopes","config","anonymousSignIn","anonymousSignInWithUserId","userId","user_id","payload","Promise","resolve","reject","auth","token","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","context","url","SANDBOX_BASE_URL","mode","DEV_BASE_URL","OkHiMode","PROD","PROD_BASE_URL","headers","Authorization","data","axios","post","authorization_token","error","parseRequestError","response","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","status","INVALID_PHONE_CODE","INVALID_PHONE_MESSAGE","UNKNOWN_ERROR_CODE","UNKNOWN_ERROR_MESSAGE"],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport { OkHiMode } from './OkHiMode';\nimport { OkHiException } from './OkHiException';\nimport type { AuthApplicationConfig, OkHiAccessScope } from './_types';\nimport { getApplicationConfiguration } from './';\n\n/**\n * @ignore\n */\nexport class OkHiAuth {\n private readonly API_VERSION = 'v5';\n private readonly ANONYMOUS_SIGN_IN_ENDPOINT = '/auth/anonymous-signin';\n private readonly DEV_BASE_URL =\n `https://dev-api.okhi.io/${this.API_VERSION}` +\n this.ANONYMOUS_SIGN_IN_ENDPOINT;\n private readonly SANDBOX_BASE_URL =\n `https://sandbox-api.okhi.io/${this.API_VERSION}` +\n this.ANONYMOUS_SIGN_IN_ENDPOINT;\n private readonly PROD_BASE_URL =\n `https://api.okhi.io/${this.API_VERSION}` + this.ANONYMOUS_SIGN_IN_ENDPOINT;\n private config: AuthApplicationConfig | null = null;\n\n anonymousSignInWithPhoneNumber(\n phone: string,\n scopes: Array<OkHiAccessScope>,\n config: AuthApplicationConfig\n ) {\n this.config = config;\n return this.anonymousSignIn({\n scopes,\n phone,\n });\n }\n\n protected anonymousSignInWithUserId(\n userId: string,\n scopes: Array<OkHiAccessScope>\n ) {\n return this.anonymousSignIn({\n scopes,\n user_id: userId,\n });\n }\n\n private async anonymousSignIn(payload: {\n scopes: Array<OkHiAccessScope>;\n [key: string]: any;\n }): Promise<string> {\n return new Promise(async (resolve, reject) => {\n try {\n const config = this.config || (await getApplicationConfiguration());\n if (config === null || !config.auth || !config.auth.token) {\n reject(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else {\n const { auth, context } = config;\n let url = this.SANDBOX_BASE_URL;\n if (context?.mode === ('dev' as any)) {\n url = this.DEV_BASE_URL;\n } else if (context?.mode === OkHiMode.PROD) {\n url = this.PROD_BASE_URL;\n } else {\n url = this.SANDBOX_BASE_URL;\n }\n const headers = { Authorization: auth.token };\n const { data } = await axios.post(url, payload, {\n headers,\n });\n resolve(data.authorization_token);\n }\n } catch (error) {\n reject(this.parseRequestError(error));\n }\n });\n }\n\n private parseRequestError(error: any) {\n if (!error.response) {\n return new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n });\n }\n switch (error.response.status) {\n case 400:\n return new OkHiException({\n code: OkHiException.INVALID_PHONE_CODE,\n message: OkHiException.INVALID_PHONE_MESSAGE,\n });\n case 401:\n return new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n default:\n return new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: error.message || OkHiException.UNKNOWN_ERROR_MESSAGE,\n });\n }\n }\n}\n"]}
|
|
@@ -12,6 +12,14 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
12
12
|
* It contains static string properties that can be used to evaluate the kind of errors being thrown and handle them appropriately.
|
|
13
13
|
*/
|
|
14
14
|
class OkHiException extends Error {
|
|
15
|
+
/**
|
|
16
|
+
* Error is thrown when location services is unavailable.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Error is thrown when play services is unavailable.
|
|
21
|
+
*/
|
|
22
|
+
|
|
15
23
|
/**
|
|
16
24
|
* Error is thrown when the device can't connect to OkHi's servers.
|
|
17
25
|
*/
|
|
@@ -91,6 +99,10 @@ class OkHiException extends Error {
|
|
|
91
99
|
|
|
92
100
|
exports.OkHiException = OkHiException;
|
|
93
101
|
|
|
102
|
+
_defineProperty(OkHiException, "LOCATION_SERVICES_UNAVAILABLE_CODE", 'location_services_unavailable');
|
|
103
|
+
|
|
104
|
+
_defineProperty(OkHiException, "PLAY_SERVICES_UNAVAILABLE_CODE", 'play_services_unavailable');
|
|
105
|
+
|
|
94
106
|
_defineProperty(OkHiException, "NETWORK_ERROR_CODE", 'network_error');
|
|
95
107
|
|
|
96
108
|
_defineProperty(OkHiException, "NETWORK_ERROR_MESSAGE", 'Unable to establish a connection with OkHi servers');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OkHiException.ts"],"names":["OkHiException","Error","constructor","error","message","name","code"],"mappings":";;;;;;;;;AAEA;AACA;AACA;AACA;AACO,MAAMA,aAAN,SAA4BC,KAA5B,CAAkC;AACvC;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAACC,KAAD,EAAmB;AAC5B,UAAMA,KAAK,CAACC,OAAZ;;AAD4B;;AAE5B,SAAKC,IAAL,GAAY,eAAZ;AACA,SAAKD,OAAL,GAAeD,KAAK,CAACC,OAArB;AACA,SAAKE,IAAL,GAAYH,KAAK,CAACG,IAAlB;AACD;;
|
|
1
|
+
{"version":3,"sources":["OkHiException.ts"],"names":["OkHiException","Error","constructor","error","message","name","code"],"mappings":";;;;;;;;;AAEA;AACA;AACA;AACA;AACO,MAAMA,aAAN,SAA4BC,KAA5B,CAAkC;AACvC;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAACC,KAAD,EAAmB;AAC5B,UAAMA,KAAK,CAACC,OAAZ;;AAD4B;;AAE5B,SAAKC,IAAL,GAAY,eAAZ;AACA,SAAKD,OAAL,GAAeD,KAAK,CAACC,OAArB;AACA,SAAKE,IAAL,GAAYH,KAAK,CAACG,IAAlB;AACD;;AArFsC;;;;gBAA5BN,a,wCAIiC,+B;;gBAJjCA,a,oCAS6B,2B;;gBAT7BA,a,wBAaiB,e;;gBAbjBA,a,2BAkBT,oD;;gBAlBSA,a,wBAsBiB,e;;gBAtBjBA,a,2BA2BT,qD;;gBA3BSA,a,wBA+BiB,e;;gBA/BjBA,a,2BAoCT,+E;;gBApCSA,a,uBAwCgB,c;;gBAxChBA,a,0BA4CmB,8B;;gBA5CnBA,a,4BAgDqB,mB;;gBAhDrBA,a,8BAoDuB,qB;;gBApDvBA,a,+BAwDwB,sB;;gBAxDxBA,a,kCA4D2B,mC;;gBA5D3BA,a,sBAgEe,a;;gBAhEfA,a,yBAoEkB,6B","sourcesContent":["import type { OkHiError } from './types';\n\n/**\n * The OkHiException class extends the Error class to provide additional information regarding the type of errors thrown while running any OkHiLibraries.\n * It contains static string properties that can be used to evaluate the kind of errors being thrown and handle them appropriately.\n */\nexport class OkHiException extends Error {\n /**\n * Error is thrown when location services is unavailable.\n */\n static LOCATION_SERVICES_UNAVAILABLE_CODE = 'location_services_unavailable';\n\n /**\n * Error is thrown when play services is unavailable.\n */\n static PLAY_SERVICES_UNAVAILABLE_CODE = 'play_services_unavailable';\n /**\n * Error is thrown when the device can't connect to OkHi's servers.\n */\n static NETWORK_ERROR_CODE = 'network_error';\n /**\n * Error is thrown when the device can't connect to OkHi's servers.\n */\n static NETWORK_ERROR_MESSAGE =\n 'Unable to establish a connection with OkHi servers';\n /**\n * Error is thrown whenever there's an unknown error that occured during the usage of one of OkHi's services.\n */\n static UNKNOWN_ERROR_CODE = 'unknown_error';\n /**\n * Error is thrown whenever there's an unknown error that occured during the usage of one of OkHi's services.\n */\n static UNKNOWN_ERROR_MESSAGE =\n 'Unable to process the request. Something went wrong';\n /**\n * Error is thrown whenever an invalid phone number is provided to a service that requires a user's phone number.\n */\n static INVALID_PHONE_CODE = 'invalid_phone';\n /**\n * Error is thrown whenever an invalid phone number is provided to a service that requires a user's phone number.\n */\n static INVALID_PHONE_MESSAGE =\n 'Invalid phone number provided. Please make sure its in MSISDN standard format';\n /**\n * Error is thrown whenever there's an issue with the credentials provided.\n */\n static UNAUTHORIZED_CODE = 'unauthorized';\n /**\n * Error is thrown whenever there's an issue with the credentials provided.\n */\n static UNAUTHORIZED_MESSAGE = 'Invalid credentials provided';\n /**\n * Error is thrown whenever a particular permission is required for a service to run and isn't granted by the user.\n */\n static PERMISSION_DENIED_CODE = 'permission_denied';\n /**\n * Error is thrown whenever a particular device service is required for a library to run and isn't granted by the user.\n */\n static SERVICE_UNAVAILABLE_CODE = 'service_unavailable';\n /**\n * Error is thrown whenever an OkHi service is run on an unsupported platform.\n */\n static UNSUPPORTED_PLATFORM_CODE = 'unsupported_platform';\n /**\n * Error is thrown whenever an OkHi service is run on an unsupported platform.\n */\n static UNSUPPORTED_PLATFORM_MESSAGE = 'Current platform is not supported';\n /**\n * Error is thrown whenever bad configuration is provided to an OkHi service.\n */\n static BAD_REQUEST_CODE = 'bad_request';\n /**\n * Error is thrown whenever bad configuration is provided to an OkHi service.\n */\n static BAD_REQUEST_MESSAGE = 'Invalid parameters provided';\n\n /**\n * Specific error code string detailing the kind of error being thrown.\n */\n code: string;\n\n /**\n * @param error An error object with code and respective message.\n * @param error.code Specific error code string detailing the kind of error being thrown.\n * @param error.message Specific error message string detailing the kind of error being thrown.\n */\n constructor(error: OkHiError) {\n super(error.message);\n this.name = 'OkHiException';\n this.message = error.message;\n this.code = error.code;\n }\n}\n"]}
|
|
@@ -80,13 +80,13 @@ let okhiApplicationConfiguration;
|
|
|
80
80
|
|
|
81
81
|
function initialize(configuration) {
|
|
82
82
|
return (0, _helpers.errorHandler)(async () => {
|
|
83
|
+
okhiApplicationConfiguration = configuration;
|
|
84
|
+
|
|
83
85
|
if (_reactNative.Platform.OS === 'android') {
|
|
84
86
|
await _OkHiNativeModule.OkHiNativeModule.initialize(JSON.stringify(configuration));
|
|
85
87
|
} else {
|
|
86
88
|
await _OkHiNativeModule.OkHiNativeModule.initializeIOS(configuration.credentials.branchId, configuration.credentials.clientKey, configuration.context.mode);
|
|
87
89
|
}
|
|
88
|
-
|
|
89
|
-
okhiApplicationConfiguration = configuration;
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
/**
|