react-native-okhi 1.2.31 → 1.2.32-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +34 -4
  3. package/ReactNativeOkhi.podspec +21 -0
  4. package/android/build.gradle +38 -99
  5. package/android/gradle.properties +3 -3
  6. package/android/src/main/AndroidManifest.xml +1 -3
  7. package/android/src/main/java/com/okhi/OkhiModule.kt +336 -0
  8. package/android/src/main/java/com/okhi/OkhiPackage.kt +33 -0
  9. package/ios/OkHiWrapper.swift +348 -0
  10. package/ios/Okhi.h +5 -0
  11. package/ios/Okhi.mm +170 -0
  12. package/lib/commonjs/NativeOkhi.js +9 -0
  13. package/lib/commonjs/NativeOkhi.js.map +1 -0
  14. package/lib/commonjs/index.js +234 -28
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/package.json +1 -0
  17. package/lib/commonjs/types.js.map +1 -0
  18. package/lib/module/NativeOkhi.js +5 -0
  19. package/lib/module/NativeOkhi.js.map +1 -0
  20. package/lib/module/index.js +221 -3
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/package.json +1 -0
  23. package/lib/module/types.js +2 -0
  24. package/lib/module/types.js.map +1 -0
  25. package/lib/typescript/commonjs/package.json +1 -0
  26. package/lib/typescript/commonjs/src/NativeOkhi.d.ts +25 -0
  27. package/lib/typescript/commonjs/src/NativeOkhi.d.ts.map +1 -0
  28. package/lib/typescript/commonjs/src/index.d.ts +22 -0
  29. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  30. package/lib/typescript/commonjs/src/types.d.ts +81 -0
  31. package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
  32. package/lib/typescript/module/package.json +1 -0
  33. package/lib/typescript/module/src/NativeOkhi.d.ts +25 -0
  34. package/lib/typescript/module/src/NativeOkhi.d.ts.map +1 -0
  35. package/lib/typescript/module/src/index.d.ts +22 -0
  36. package/lib/typescript/module/src/index.d.ts.map +1 -0
  37. package/lib/typescript/module/src/types.d.ts +81 -0
  38. package/lib/typescript/module/src/types.d.ts.map +1 -0
  39. package/package.json +91 -112
  40. package/src/NativeOkhi.ts +68 -0
  41. package/src/index.tsx +271 -3
  42. package/src/types.ts +90 -0
  43. package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +0 -389
  44. package/android/src/main/java/com/reactnativeokhi/OkhiPackage.java +0 -28
  45. package/ios/OkHiExtension.swift +0 -27
  46. package/ios/OkHiStruct.swift +0 -29
  47. package/ios/Okhi-Bridging-Header.h +0 -3
  48. package/ios/Okhi.m +0 -62
  49. package/ios/Okhi.swift +0 -325
  50. package/ios/Okhi.xcodeproj/project.pbxproj +0 -283
  51. package/lib/commonjs/OkCollect/Helpers.js +0 -40
  52. package/lib/commonjs/OkCollect/Helpers.js.map +0 -1
  53. package/lib/commonjs/OkCollect/OkHiLocationManager.js +0 -305
  54. package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +0 -1
  55. package/lib/commonjs/OkCollect/Spinner.js +0 -27
  56. package/lib/commonjs/OkCollect/Spinner.js.map +0 -1
  57. package/lib/commonjs/OkCollect/Util.js +0 -226
  58. package/lib/commonjs/OkCollect/Util.js.map +0 -1
  59. package/lib/commonjs/OkCollect/app.json +0 -4
  60. package/lib/commonjs/OkCollect/index.js +0 -47
  61. package/lib/commonjs/OkCollect/index.js.map +0 -1
  62. package/lib/commonjs/OkCollect/types.js +0 -6
  63. package/lib/commonjs/OkCollect/types.js.map +0 -1
  64. package/lib/commonjs/OkCore/Helpers.js +0 -386
  65. package/lib/commonjs/OkCore/Helpers.js.map +0 -1
  66. package/lib/commonjs/OkCore/OkHiException.js +0 -96
  67. package/lib/commonjs/OkCore/OkHiException.js.map +0 -1
  68. package/lib/commonjs/OkCore/OkHiMode.js +0 -14
  69. package/lib/commonjs/OkCore/OkHiMode.js.map +0 -1
  70. package/lib/commonjs/OkCore/_helpers.js +0 -41
  71. package/lib/commonjs/OkCore/_helpers.js.map +0 -1
  72. package/lib/commonjs/OkCore/_types.js +0 -2
  73. package/lib/commonjs/OkCore/_types.js.map +0 -1
  74. package/lib/commonjs/OkCore/index.js +0 -119
  75. package/lib/commonjs/OkCore/index.js.map +0 -1
  76. package/lib/commonjs/OkCore/types.js +0 -6
  77. package/lib/commonjs/OkCore/types.js.map +0 -1
  78. package/lib/commonjs/OkHiNativeModule/index.js +0 -19
  79. package/lib/commonjs/OkHiNativeModule/index.js.map +0 -1
  80. package/lib/commonjs/OkVerify/index.js +0 -211
  81. package/lib/commonjs/OkVerify/index.js.map +0 -1
  82. package/lib/commonjs/OkVerify/types.js.map +0 -1
  83. package/lib/module/OkCollect/Helpers.js +0 -34
  84. package/lib/module/OkCollect/Helpers.js.map +0 -1
  85. package/lib/module/OkCollect/OkHiLocationManager.js +0 -298
  86. package/lib/module/OkCollect/OkHiLocationManager.js.map +0 -1
  87. package/lib/module/OkCollect/Spinner.js +0 -20
  88. package/lib/module/OkCollect/Spinner.js.map +0 -1
  89. package/lib/module/OkCollect/Util.js +0 -214
  90. package/lib/module/OkCollect/Util.js.map +0 -1
  91. package/lib/module/OkCollect/app.json +0 -4
  92. package/lib/module/OkCollect/index.js +0 -4
  93. package/lib/module/OkCollect/index.js.map +0 -1
  94. package/lib/module/OkCollect/types.js +0 -2
  95. package/lib/module/OkCollect/types.js.map +0 -1
  96. package/lib/module/OkCore/Helpers.js +0 -363
  97. package/lib/module/OkCore/Helpers.js.map +0 -1
  98. package/lib/module/OkCore/OkHiException.js +0 -89
  99. package/lib/module/OkCore/OkHiException.js.map +0 -1
  100. package/lib/module/OkCore/OkHiMode.js +0 -8
  101. package/lib/module/OkCore/OkHiMode.js.map +0 -1
  102. package/lib/module/OkCore/_helpers.js +0 -34
  103. package/lib/module/OkCore/_helpers.js.map +0 -1
  104. package/lib/module/OkCore/_types.js +0 -2
  105. package/lib/module/OkCore/_types.js.map +0 -1
  106. package/lib/module/OkCore/index.js +0 -65
  107. package/lib/module/OkCore/index.js.map +0 -1
  108. package/lib/module/OkCore/types.js +0 -2
  109. package/lib/module/OkCore/types.js.map +0 -1
  110. package/lib/module/OkHiNativeModule/index.js +0 -13
  111. package/lib/module/OkHiNativeModule/index.js.map +0 -1
  112. package/lib/module/OkVerify/index.js +0 -195
  113. package/lib/module/OkVerify/index.js.map +0 -1
  114. package/lib/module/OkVerify/types.js +0 -2
  115. package/lib/module/OkVerify/types.js.map +0 -1
  116. package/lib/typescript/OkCollect/Helpers.d.ts +0 -9
  117. package/lib/typescript/OkCollect/OkHiLocationManager.d.ts +0 -7
  118. package/lib/typescript/OkCollect/Spinner.d.ts +0 -5
  119. package/lib/typescript/OkCollect/Util.d.ts +0 -31
  120. package/lib/typescript/OkCollect/index.d.ts +0 -3
  121. package/lib/typescript/OkCollect/types.d.ts +0 -139
  122. package/lib/typescript/OkCore/Helpers.d.ts +0 -95
  123. package/lib/typescript/OkCore/OkHiException.d.ts +0 -81
  124. package/lib/typescript/OkCore/OkHiMode.d.ts +0 -7
  125. package/lib/typescript/OkCore/_helpers.d.ts +0 -3
  126. package/lib/typescript/OkCore/_types.d.ts +0 -38
  127. package/lib/typescript/OkCore/index.d.ts +0 -17
  128. package/lib/typescript/OkCore/types.d.ts +0 -203
  129. package/lib/typescript/OkHiNativeModule/index.d.ts +0 -48
  130. package/lib/typescript/OkVerify/index.d.ts +0 -65
  131. package/lib/typescript/OkVerify/types.d.ts +0 -0
  132. package/lib/typescript/index.d.ts +0 -3
  133. package/react-native-okhi.podspec +0 -35
  134. package/src/OkCollect/Helpers.ts +0 -53
  135. package/src/OkCollect/OkHiLocationManager.tsx +0 -391
  136. package/src/OkCollect/Spinner.tsx +0 -18
  137. package/src/OkCollect/Util.ts +0 -270
  138. package/src/OkCollect/app.json +0 -4
  139. package/src/OkCollect/index.ts +0 -3
  140. package/src/OkCollect/types.ts +0 -154
  141. package/src/OkCore/Helpers.ts +0 -477
  142. package/src/OkCore/OkHiException.ts +0 -93
  143. package/src/OkCore/OkHiMode.ts +0 -7
  144. package/src/OkCore/_helpers.ts +0 -47
  145. package/src/OkCore/_types.ts +0 -37
  146. package/src/OkCore/index.ts +0 -87
  147. package/src/OkCore/types.ts +0 -235
  148. package/src/OkHiNativeModule/index.ts +0 -92
  149. package/src/OkVerify/index.ts +0 -259
  150. package/src/OkVerify/types.ts +0 -0
  151. /package/lib/commonjs/{OkVerify/types.js → types.js} +0 -0
@@ -0,0 +1,348 @@
1
+ import Foundation
2
+ import OkHi
3
+ import React
4
+ import UserNotifications
5
+
6
+ @objc public class OkHiWrapper: NSObject, OkVerifyDelegate {
7
+
8
+ // Singleton instance for delegate callbacks
9
+ private static let shared = OkHiWrapper()
10
+
11
+ private var okVerify: OkVerify = OkVerify()
12
+ private var currentPermissionCallback: ((NSNumber?, NSDictionary?) -> Void)?
13
+ private var currentPermissionLevelRequest: String?
14
+
15
+ private override init() {
16
+ super.init()
17
+ okVerify.delegate = self
18
+ }
19
+
20
+ @objc public static func multiply(_ a: Double, _ b: Double) -> NSNumber {
21
+ return NSNumber(value: a * b)
22
+ }
23
+
24
+ @objc public static func login(_ credentials: NSDictionary, callback: @escaping ([String]?) -> Void) {
25
+ // Extract auth dictionary
26
+ guard let authDict = credentials["auth"] as? NSDictionary,
27
+ let branchId = authDict["branchId"] as? String,
28
+ let clientKey = authDict["clientKey"] as? String else {
29
+ callback(nil)
30
+ return
31
+ }
32
+ let env = authDict["env"] as? String ?? "prod"
33
+
34
+ // Extract user dictionary
35
+ guard let userDict = credentials["user"] as? NSDictionary,
36
+ let phone = userDict["phone"] as? String else {
37
+ callback(nil)
38
+ return
39
+ }
40
+ let firstName = userDict["firstName"] as? String
41
+ let lastName = userDict["lastName"] as? String
42
+ let email = userDict["email"] as? String
43
+ let appUserId = userDict["appUserId"] as? String
44
+
45
+ // Extract optional appContext dictionary
46
+ var nativeAppContext: OkHiAppContext? = nil
47
+ if let appContextDict = credentials["appContext"] as? NSDictionary,
48
+ let name = appContextDict["name"] as? String,
49
+ let version = appContextDict["version"] as? String,
50
+ let build = appContextDict["build"] as? String {
51
+ nativeAppContext = OkHiAppContext().withAppMeta(name: name, version: version, build: build)
52
+ }
53
+
54
+ let auth = OkHiAuth(
55
+ branchId: branchId,
56
+ clientKey: clientKey,
57
+ environment: env == "prod" ? .prod : .sandbox,
58
+ appContext: nativeAppContext
59
+ )
60
+
61
+ var user = OkHiUser(phoneNumber: phone)
62
+ if let firstName = firstName {
63
+ user = user.with(firstName: firstName)
64
+ }
65
+ if let lastName = lastName {
66
+ user = user.with(lastName: lastName)
67
+ }
68
+ if let email = email {
69
+ user = user.with(email: email)
70
+ }
71
+ if let appUserId = appUserId {
72
+ user = user.with(appUserId: appUserId)
73
+ }
74
+
75
+ OK.shared.login(auth: auth, user: user) { results in
76
+ callback(results)
77
+ }
78
+ }
79
+
80
+ // MARK: - Helper Methods
81
+
82
+ private static func parseOkCollect(_ okcollect: NSDictionary) -> (theme: OkHiTheme, config: OkHiConfig, location: OkHi.OkHiLocation?) {
83
+ // Parse style
84
+ let styleDict = okcollect["style"] as? NSDictionary
85
+ let color = styleDict?["color"] as? String ?? "#005D67"
86
+ let logo = styleDict?["logo"] as? String ?? "https://cdn.okhi.co/icon.png"
87
+
88
+ // Parse configuration
89
+ let configDict = okcollect["configuration"] as? NSDictionary
90
+ let streetView = configDict?["streetView"] as? Bool ?? true
91
+ let withHomeAddressType = configDict?["withHomeAddressType"] as? Bool ?? true
92
+ let withWorkAddressType = configDict?["withWorkAddressType"] as? Bool ?? false
93
+
94
+ // Parse optional locationId
95
+ let locationId = okcollect["locationId"] as? String
96
+ var okhiLocation: OkHi.OkHiLocation? = nil
97
+ if let locationId = locationId {
98
+ okhiLocation = OkHi.OkHiLocation(identifier: locationId)
99
+ }
100
+
101
+ // Build theme
102
+ let theme = OkHiTheme()
103
+ .with(appBarColor: color)
104
+ .with(logoUrl: logo)
105
+ .with(primaryColor: color)
106
+
107
+ // Build config
108
+ var config = OkHiConfig()
109
+ .withAddressTypes(work: withWorkAddressType, home: withHomeAddressType)
110
+ if streetView {
111
+ config = config.enableStreetView()
112
+ }
113
+
114
+ return (theme, config, okhiLocation)
115
+ }
116
+
117
+ private static func processResponse(_ response: OkHi.OkHiSuccessResponse?, _ error: OkHi.OkHiException?, callback: @escaping (NSDictionary?, NSDictionary?) -> Void) {
118
+ if let response = response,
119
+ let userJson = response.user.toJSON(),
120
+ let locationJson = response.location.toJSON() {
121
+ let successResult: NSDictionary = ["user": userJson, "location": locationJson]
122
+ callback(successResult, nil)
123
+ } else if let error = error {
124
+ let errorResult: NSDictionary = ["code": error.code, "message": error.message ?? "Unable to complete operation"]
125
+ callback(nil, errorResult)
126
+ } else {
127
+ let errorResult: NSDictionary = ["code": "unknown", "message": "Unable to parse response"]
128
+ callback(nil, errorResult)
129
+ }
130
+ }
131
+
132
+ // MARK: - Digital Verification
133
+
134
+ @objc public static func startDigitalAddressVerification(_ okcollect: NSDictionary, callback: @escaping (NSDictionary?, NSDictionary?) -> Void) {
135
+ DispatchQueue.main.async {
136
+ guard let vc = RCTPresentedViewController() else {
137
+ let errorResult: NSDictionary = ["code": "unknown", "message": "Unable to retrieve current view controller"]
138
+ callback(nil, errorResult)
139
+ return
140
+ }
141
+
142
+ let (theme, config, location) = parseOkCollect(okcollect)
143
+
144
+ OK.shared.startAddressVerification(
145
+ vc: vc,
146
+ theme: theme,
147
+ config: config,
148
+ location: location
149
+ ) { response, error in
150
+ processResponse(response, error, callback: callback)
151
+ }
152
+ }
153
+ }
154
+
155
+ // MARK: - Physical Verification
156
+
157
+ @objc public static func startPhysicalAddressVerification(_ okcollect: NSDictionary, callback: @escaping (NSDictionary?, NSDictionary?) -> Void) {
158
+ DispatchQueue.main.async {
159
+ guard let vc = RCTPresentedViewController() else {
160
+ let errorResult: NSDictionary = ["code": "unknown", "message": "Unable to retrieve current view controller"]
161
+ callback(nil, errorResult)
162
+ return
163
+ }
164
+
165
+ let (theme, config, location) = parseOkCollect(okcollect)
166
+
167
+ OK.shared.startPhysicalAddressVerification(
168
+ vc: vc,
169
+ theme: theme,
170
+ config: config,
171
+ location: location
172
+ ) { response, error in
173
+ processResponse(response, error, callback: callback)
174
+ }
175
+ }
176
+ }
177
+
178
+ // MARK: - Digital and Physical Verification
179
+
180
+ @objc public static func startDigitalAndPhysicalAddressVerification(_ okcollect: NSDictionary, callback: @escaping (NSDictionary?, NSDictionary?) -> Void) {
181
+ DispatchQueue.main.async {
182
+ guard let vc = RCTPresentedViewController() else {
183
+ let errorResult: NSDictionary = ["code": "unknown", "message": "Unable to retrieve current view controller"]
184
+ callback(nil, errorResult)
185
+ return
186
+ }
187
+
188
+ let (theme, config, location) = parseOkCollect(okcollect)
189
+
190
+ OK.shared.startDigitalAndPhysicalAddressVerification(
191
+ vc: vc,
192
+ theme: theme,
193
+ config: config,
194
+ location: location
195
+ ) { response, error in
196
+ processResponse(response, error, callback: callback)
197
+ }
198
+ }
199
+ }
200
+
201
+ // MARK: - Create Address
202
+
203
+ @objc public static func createAddress(_ okcollect: NSDictionary, callback: @escaping (NSDictionary?, NSDictionary?) -> Void) {
204
+ DispatchQueue.main.async {
205
+ guard let vc = RCTPresentedViewController() else {
206
+ let errorResult: NSDictionary = ["code": "unknown", "message": "Unable to retrieve current view controller"]
207
+ callback(nil, errorResult)
208
+ return
209
+ }
210
+
211
+ let (theme, config, _) = parseOkCollect(okcollect)
212
+
213
+ OK.shared.createAddress(
214
+ vc: vc,
215
+ theme: theme,
216
+ config: config
217
+ ) { response, error in
218
+ processResponse(response, error, callback: callback)
219
+ }
220
+ }
221
+ }
222
+
223
+ // MARK: - Check Helper Methods
224
+
225
+ @objc public static func isLocationServicesEnabled(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
226
+ let result = OkVerify.isLocationServicesEnabled()
227
+ callback(NSNumber(value: result), nil)
228
+ }
229
+
230
+ @objc public static func canOpenProtectedApps(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
231
+ // Always false on iOS - protected apps is Android-specific
232
+ callback(NSNumber(value: false), nil)
233
+ }
234
+
235
+ @objc public static func getLocationAccuracyLevel(callback: @escaping (NSString?, NSDictionary?) -> Void) {
236
+ let level = OkVerify.getLocationAccuracyLevel()
237
+ callback(level as NSString, nil)
238
+ }
239
+
240
+ @objc public static func isBackgroundLocationPermissionGranted(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
241
+ let result = OkVerify.isBackgroundLocationPermissionGranted()
242
+ callback(NSNumber(value: result), nil)
243
+ }
244
+
245
+ @objc public static func isCoarseLocationPermissionGranted(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
246
+ // On iOS, coarse location is granted if accuracy level is "precise" or "approximate"
247
+ let level = OkVerify.getLocationAccuracyLevel()
248
+ let result = level == "precise" || level == "approximate"
249
+ callback(NSNumber(value: result), nil)
250
+ }
251
+
252
+ @objc public static func isFineLocationPermissionGranted(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
253
+ // On iOS, fine location is granted if accuracy level is "precise"
254
+ let level = OkVerify.getLocationAccuracyLevel()
255
+ let result = level == "precise"
256
+ callback(NSNumber(value: result), nil)
257
+ }
258
+
259
+ @objc public static func isPlayServicesAvailable(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
260
+ // Always false on iOS - Play Services is Android-specific
261
+ callback(NSNumber(value: false), nil)
262
+ }
263
+
264
+ @objc public static func isPostNotificationPermissionGranted(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
265
+ UNUserNotificationCenter.current().getNotificationSettings { settings in
266
+ let result = settings.authorizationStatus == .authorized
267
+ callback(NSNumber(value: result), nil)
268
+ }
269
+ }
270
+
271
+ @objc public static func openProtectedApps() {
272
+ // No-op on iOS - protected apps is Android-specific
273
+ }
274
+
275
+ // MARK: - Request Helper Methods
276
+
277
+ @objc public static func requestLocationPermission(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
278
+ shared.currentPermissionCallback = callback
279
+ shared.currentPermissionLevelRequest = "whenInUse"
280
+ shared.okVerify.requestLocationPermission()
281
+ }
282
+
283
+ @objc public static func requestBackgroundLocationPermission(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
284
+ shared.currentPermissionCallback = callback
285
+ shared.currentPermissionLevelRequest = "always"
286
+ shared.okVerify.requestBackgroundLocationPermission()
287
+ }
288
+
289
+ @objc public static func requestEnableLocationServices(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
290
+ // On iOS, we cannot programmatically enable location services
291
+ // Return unsupported_platform error like the Nitro implementation
292
+ let errorResult: NSDictionary = ["code": "unsupported_platform", "message": "Requesting enable location services is not supported on iOS"]
293
+ callback(nil, errorResult)
294
+ }
295
+
296
+ @objc public static func requestPostNotificationPermissions(callback: @escaping (NSNumber?, NSDictionary?) -> Void) {
297
+ // On iOS, we cannot programmatically request notification permissions from this context
298
+ // Return unsupported_platform error like the Nitro implementation
299
+ let errorResult: NSDictionary = ["code": "unsupported_platform", "message": "Requesting post notification permissions is not supported on iOS"]
300
+ callback(nil, errorResult)
301
+ }
302
+ }
303
+
304
+
305
+ extension OkHiWrapper {
306
+ public func verify(_ okverify: OkHi.OkVerify, didChangeLocationPermissionStatus requestType: OkHi.OkVerifyLocationPermissionRequestType, status: Bool) {
307
+ if let callback = currentPermissionCallback, let request = currentPermissionLevelRequest {
308
+ if (request == "whenInUse" && requestType == .whenInUse) {
309
+ callback(NSNumber(value: status), nil)
310
+ currentPermissionCallback = nil
311
+ currentPermissionLevelRequest = nil
312
+ return
313
+ } else if (currentPermissionLevelRequest == "always" && requestType == .always) {
314
+ callback(NSNumber(value: status), nil)
315
+ currentPermissionCallback = nil
316
+ currentPermissionLevelRequest = nil
317
+ return
318
+ } else {
319
+ let errorResult: NSDictionary = ["code": "permission_denied", "message": "User denied permission"]
320
+ callback(nil, errorResult)
321
+ }
322
+ }
323
+ }
324
+
325
+ public func verify(_ okverify: OkHi.OkVerify, didInitialize result: Bool) {
326
+
327
+ }
328
+
329
+ public func verify(_ okverify: OkHi.OkVerify, didEncounterError error: OkHi.OkVerifyError) {
330
+
331
+ }
332
+
333
+ public func verify(_ okverify: OkHi.OkVerify, didStartAddressVerificationFor locationId: String) {
334
+
335
+ }
336
+
337
+ public func verify(_ okverify: OkHi.OkVerify, didStopVerificationFor locationId: String) {
338
+
339
+ }
340
+
341
+ public func verify(_ okverify: OkHi.OkVerify, didUpdateLocationPermissionStatus status: CLAuthorizationStatus) {
342
+
343
+ }
344
+
345
+ public func verify(_ okverify: OkHi.OkVerify, didUpdateNotificationPermissionStatus status: Bool) {
346
+
347
+ }
348
+ }
package/ios/Okhi.h ADDED
@@ -0,0 +1,5 @@
1
+ #import <OkhiSpec/OkhiSpec.h>
2
+
3
+ @interface Okhi : NSObject <NativeOkhiSpec>
4
+
5
+ @end
package/ios/Okhi.mm ADDED
@@ -0,0 +1,170 @@
1
+ #import "Okhi.h"
2
+ #import <React/RCTBridgeModule.h>
3
+
4
+ #if __has_include(<ReactNativeOkHi/ReactNativeOkHi-Swift.h>)
5
+ #import <ReactNativeOkHi/ReactNativeOkHi-Swift.h>
6
+ #else
7
+ #import "ReactNativeOkHi-Swift.h"
8
+ #endif
9
+
10
+ @implementation Okhi
11
+ - (NSNumber *)multiply:(double)a b:(double)b {
12
+ return [OkHiWrapper multiply:a :b];
13
+ }
14
+
15
+ - (void)login:(NSDictionary *)credentials callback:(RCTResponseSenderBlock)callback {
16
+ [OkHiWrapper login:credentials callback:^(NSArray<NSString *> *results) {
17
+ if (callback) {
18
+ callback(@[results ?: [NSNull null]]);
19
+ }
20
+ }];
21
+ }
22
+
23
+ - (void)startDigitalAddressVerification:(NSDictionary *)okcollect callback:(RCTResponseSenderBlock)callback {
24
+ [OkHiWrapper startDigitalAddressVerification:okcollect callback:^(NSDictionary *result, NSDictionary *error) {
25
+ if (callback) {
26
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
27
+ }
28
+ }];
29
+ }
30
+
31
+ - (void)startPhysicalAddressVerification:(NSDictionary *)okcollect callback:(RCTResponseSenderBlock)callback {
32
+ [OkHiWrapper startPhysicalAddressVerification:okcollect callback:^(NSDictionary *result, NSDictionary *error) {
33
+ if (callback) {
34
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
35
+ }
36
+ }];
37
+ }
38
+
39
+ - (void)startDigitalAndPhysicalAddressVerification:(NSDictionary *)okcollect callback:(RCTResponseSenderBlock)callback {
40
+ [OkHiWrapper startDigitalAndPhysicalAddressVerification:okcollect callback:^(NSDictionary *result, NSDictionary *error) {
41
+ if (callback) {
42
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
43
+ }
44
+ }];
45
+ }
46
+
47
+ - (void)createAddress:(NSDictionary *)okcollect callback:(RCTResponseSenderBlock)callback {
48
+ [OkHiWrapper createAddress:okcollect callback:^(NSDictionary *result, NSDictionary *error) {
49
+ if (callback) {
50
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
51
+ }
52
+ }];
53
+ }
54
+
55
+ // MARK: - Helper Methods
56
+
57
+ - (void)isLocationServicesEnabled:(RCTResponseSenderBlock)callback {
58
+ [OkHiWrapper isLocationServicesEnabledWithCallback:^(NSNumber *result, NSDictionary *error) {
59
+ if (callback) {
60
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
61
+ }
62
+ }];
63
+ }
64
+
65
+ - (void)canOpenProtectedApps:(RCTResponseSenderBlock)callback {
66
+ [OkHiWrapper canOpenProtectedAppsWithCallback:^(NSNumber *result, NSDictionary *error) {
67
+ if (callback) {
68
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
69
+ }
70
+ }];
71
+ }
72
+
73
+ - (void)getLocationAccuracyLevel:(RCTResponseSenderBlock)callback {
74
+ [OkHiWrapper getLocationAccuracyLevelWithCallback:^(NSString *result, NSDictionary *error) {
75
+ if (callback) {
76
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
77
+ }
78
+ }];
79
+ }
80
+
81
+ - (void)isBackgroundLocationPermissionGranted:(RCTResponseSenderBlock)callback {
82
+ [OkHiWrapper isBackgroundLocationPermissionGrantedWithCallback:^(NSNumber *result, NSDictionary *error) {
83
+ if (callback) {
84
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
85
+ }
86
+ }];
87
+ }
88
+
89
+ - (void)isCoarseLocationPermissionGranted:(RCTResponseSenderBlock)callback {
90
+ [OkHiWrapper isCoarseLocationPermissionGrantedWithCallback:^(NSNumber *result, NSDictionary *error) {
91
+ if (callback) {
92
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
93
+ }
94
+ }];
95
+ }
96
+
97
+ - (void)isFineLocationPermissionGranted:(RCTResponseSenderBlock)callback {
98
+ [OkHiWrapper isFineLocationPermissionGrantedWithCallback:^(NSNumber *result, NSDictionary *error) {
99
+ if (callback) {
100
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
101
+ }
102
+ }];
103
+ }
104
+
105
+ - (void)isPlayServicesAvailable:(RCTResponseSenderBlock)callback {
106
+ [OkHiWrapper isPlayServicesAvailableWithCallback:^(NSNumber *result, NSDictionary *error) {
107
+ if (callback) {
108
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
109
+ }
110
+ }];
111
+ }
112
+
113
+ - (void)isPostNotificationPermissionGranted:(RCTResponseSenderBlock)callback {
114
+ [OkHiWrapper isPostNotificationPermissionGrantedWithCallback:^(NSNumber *result, NSDictionary *error) {
115
+ if (callback) {
116
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
117
+ }
118
+ }];
119
+ }
120
+
121
+ - (void)openProtectedApps {
122
+ [OkHiWrapper openProtectedApps];
123
+ }
124
+
125
+ // MARK: - Request Helpers
126
+
127
+ - (void)requestLocationPermission:(RCTResponseSenderBlock)callback {
128
+ [OkHiWrapper requestLocationPermissionWithCallback:^(NSNumber *result, NSDictionary *error) {
129
+ if (callback) {
130
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
131
+ }
132
+ }];
133
+ }
134
+
135
+ - (void)requestBackgroundLocationPermission:(RCTResponseSenderBlock)callback {
136
+ [OkHiWrapper requestBackgroundLocationPermissionWithCallback:^(NSNumber *result, NSDictionary *error) {
137
+ if (callback) {
138
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
139
+ }
140
+ }];
141
+ }
142
+
143
+ - (void)requestEnableLocationServices:(RCTResponseSenderBlock)callback {
144
+ [OkHiWrapper requestEnableLocationServicesWithCallback:^(NSNumber *result, NSDictionary *error) {
145
+ if (callback) {
146
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
147
+ }
148
+ }];
149
+ }
150
+
151
+ - (void)requestPostNotificationPermissions:(RCTResponseSenderBlock)callback {
152
+ [OkHiWrapper requestPostNotificationPermissionsWithCallback:^(NSNumber *result, NSDictionary *error) {
153
+ if (callback) {
154
+ callback(@[result ?: [NSNull null], error ?: [NSNull null]]);
155
+ }
156
+ }];
157
+ }
158
+
159
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
160
+ (const facebook::react::ObjCTurboModule::InitParams &)params
161
+ {
162
+ return std::make_shared<facebook::react::NativeOkhiSpecJSI>(params);
163
+ }
164
+
165
+ + (NSString *)moduleName
166
+ {
167
+ return @"Okhi";
168
+ }
169
+
170
+ @end
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('Okhi');
9
+ //# sourceMappingURL=NativeOkhi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOkhi.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAqE,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAmEtDC,gCAAmB,CAACC,YAAY,CAAO,MAAM,CAAC","ignoreList":[]}