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.
- package/LICENSE +1 -1
- package/README.md +34 -4
- package/ReactNativeOkhi.podspec +21 -0
- package/android/build.gradle +38 -99
- package/android/gradle.properties +3 -3
- package/android/src/main/AndroidManifest.xml +1 -3
- package/android/src/main/java/com/okhi/OkhiModule.kt +336 -0
- package/android/src/main/java/com/okhi/OkhiPackage.kt +33 -0
- package/ios/OkHiWrapper.swift +348 -0
- package/ios/Okhi.h +5 -0
- package/ios/Okhi.mm +170 -0
- package/lib/commonjs/NativeOkhi.js +9 -0
- package/lib/commonjs/NativeOkhi.js.map +1 -0
- package/lib/commonjs/index.js +234 -28
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/NativeOkhi.js +5 -0
- package/lib/module/NativeOkhi.js.map +1 -0
- package/lib/module/index.js +221 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/NativeOkhi.d.ts +25 -0
- package/lib/typescript/commonjs/src/NativeOkhi.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +22 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types.d.ts +81 -0
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/NativeOkhi.d.ts +25 -0
- package/lib/typescript/module/src/NativeOkhi.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +22 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/lib/typescript/module/src/types.d.ts +81 -0
- package/lib/typescript/module/src/types.d.ts.map +1 -0
- package/package.json +91 -112
- package/src/NativeOkhi.ts +68 -0
- package/src/index.tsx +271 -3
- package/src/types.ts +90 -0
- package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +0 -389
- package/android/src/main/java/com/reactnativeokhi/OkhiPackage.java +0 -28
- package/ios/OkHiExtension.swift +0 -27
- package/ios/OkHiStruct.swift +0 -29
- package/ios/Okhi-Bridging-Header.h +0 -3
- package/ios/Okhi.m +0 -62
- package/ios/Okhi.swift +0 -325
- package/ios/Okhi.xcodeproj/project.pbxproj +0 -283
- package/lib/commonjs/OkCollect/Helpers.js +0 -40
- package/lib/commonjs/OkCollect/Helpers.js.map +0 -1
- package/lib/commonjs/OkCollect/OkHiLocationManager.js +0 -305
- package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +0 -1
- package/lib/commonjs/OkCollect/Spinner.js +0 -27
- package/lib/commonjs/OkCollect/Spinner.js.map +0 -1
- package/lib/commonjs/OkCollect/Util.js +0 -226
- package/lib/commonjs/OkCollect/Util.js.map +0 -1
- package/lib/commonjs/OkCollect/app.json +0 -4
- package/lib/commonjs/OkCollect/index.js +0 -47
- package/lib/commonjs/OkCollect/index.js.map +0 -1
- package/lib/commonjs/OkCollect/types.js +0 -6
- package/lib/commonjs/OkCollect/types.js.map +0 -1
- package/lib/commonjs/OkCore/Helpers.js +0 -386
- package/lib/commonjs/OkCore/Helpers.js.map +0 -1
- package/lib/commonjs/OkCore/OkHiException.js +0 -96
- package/lib/commonjs/OkCore/OkHiException.js.map +0 -1
- package/lib/commonjs/OkCore/OkHiMode.js +0 -14
- package/lib/commonjs/OkCore/OkHiMode.js.map +0 -1
- package/lib/commonjs/OkCore/_helpers.js +0 -41
- package/lib/commonjs/OkCore/_helpers.js.map +0 -1
- package/lib/commonjs/OkCore/_types.js +0 -2
- package/lib/commonjs/OkCore/_types.js.map +0 -1
- package/lib/commonjs/OkCore/index.js +0 -119
- package/lib/commonjs/OkCore/index.js.map +0 -1
- package/lib/commonjs/OkCore/types.js +0 -6
- package/lib/commonjs/OkCore/types.js.map +0 -1
- package/lib/commonjs/OkHiNativeModule/index.js +0 -19
- package/lib/commonjs/OkHiNativeModule/index.js.map +0 -1
- package/lib/commonjs/OkVerify/index.js +0 -211
- package/lib/commonjs/OkVerify/index.js.map +0 -1
- package/lib/commonjs/OkVerify/types.js.map +0 -1
- package/lib/module/OkCollect/Helpers.js +0 -34
- package/lib/module/OkCollect/Helpers.js.map +0 -1
- package/lib/module/OkCollect/OkHiLocationManager.js +0 -298
- package/lib/module/OkCollect/OkHiLocationManager.js.map +0 -1
- package/lib/module/OkCollect/Spinner.js +0 -20
- package/lib/module/OkCollect/Spinner.js.map +0 -1
- package/lib/module/OkCollect/Util.js +0 -214
- package/lib/module/OkCollect/Util.js.map +0 -1
- package/lib/module/OkCollect/app.json +0 -4
- package/lib/module/OkCollect/index.js +0 -4
- package/lib/module/OkCollect/index.js.map +0 -1
- package/lib/module/OkCollect/types.js +0 -2
- package/lib/module/OkCollect/types.js.map +0 -1
- package/lib/module/OkCore/Helpers.js +0 -363
- package/lib/module/OkCore/Helpers.js.map +0 -1
- package/lib/module/OkCore/OkHiException.js +0 -89
- package/lib/module/OkCore/OkHiException.js.map +0 -1
- package/lib/module/OkCore/OkHiMode.js +0 -8
- package/lib/module/OkCore/OkHiMode.js.map +0 -1
- package/lib/module/OkCore/_helpers.js +0 -34
- package/lib/module/OkCore/_helpers.js.map +0 -1
- package/lib/module/OkCore/_types.js +0 -2
- package/lib/module/OkCore/_types.js.map +0 -1
- package/lib/module/OkCore/index.js +0 -65
- package/lib/module/OkCore/index.js.map +0 -1
- package/lib/module/OkCore/types.js +0 -2
- package/lib/module/OkCore/types.js.map +0 -1
- package/lib/module/OkHiNativeModule/index.js +0 -13
- package/lib/module/OkHiNativeModule/index.js.map +0 -1
- package/lib/module/OkVerify/index.js +0 -195
- package/lib/module/OkVerify/index.js.map +0 -1
- package/lib/module/OkVerify/types.js +0 -2
- package/lib/module/OkVerify/types.js.map +0 -1
- package/lib/typescript/OkCollect/Helpers.d.ts +0 -9
- package/lib/typescript/OkCollect/OkHiLocationManager.d.ts +0 -7
- package/lib/typescript/OkCollect/Spinner.d.ts +0 -5
- package/lib/typescript/OkCollect/Util.d.ts +0 -31
- package/lib/typescript/OkCollect/index.d.ts +0 -3
- package/lib/typescript/OkCollect/types.d.ts +0 -139
- package/lib/typescript/OkCore/Helpers.d.ts +0 -95
- package/lib/typescript/OkCore/OkHiException.d.ts +0 -81
- package/lib/typescript/OkCore/OkHiMode.d.ts +0 -7
- package/lib/typescript/OkCore/_helpers.d.ts +0 -3
- package/lib/typescript/OkCore/_types.d.ts +0 -38
- package/lib/typescript/OkCore/index.d.ts +0 -17
- package/lib/typescript/OkCore/types.d.ts +0 -203
- package/lib/typescript/OkHiNativeModule/index.d.ts +0 -48
- package/lib/typescript/OkVerify/index.d.ts +0 -65
- package/lib/typescript/OkVerify/types.d.ts +0 -0
- package/lib/typescript/index.d.ts +0 -3
- package/react-native-okhi.podspec +0 -35
- package/src/OkCollect/Helpers.ts +0 -53
- package/src/OkCollect/OkHiLocationManager.tsx +0 -391
- package/src/OkCollect/Spinner.tsx +0 -18
- package/src/OkCollect/Util.ts +0 -270
- package/src/OkCollect/app.json +0 -4
- package/src/OkCollect/index.ts +0 -3
- package/src/OkCollect/types.ts +0 -154
- package/src/OkCore/Helpers.ts +0 -477
- package/src/OkCore/OkHiException.ts +0 -93
- package/src/OkCore/OkHiMode.ts +0 -7
- package/src/OkCore/_helpers.ts +0 -47
- package/src/OkCore/_types.ts +0 -37
- package/src/OkCore/index.ts +0 -87
- package/src/OkCore/types.ts +0 -235
- package/src/OkHiNativeModule/index.ts +0 -92
- package/src/OkVerify/index.ts +0 -259
- package/src/OkVerify/types.ts +0 -0
- /package/lib/commonjs/{OkVerify/types.js → types.js} +0 -0
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2026 OkHi <kiano@okhi.co> (https://okhi.com)
|
|
4
4
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
5
|
of this software and associated documentation files (the "Software"), to deal
|
|
6
6
|
in the Software without restriction, including without limitation the rights
|
package/README.md
CHANGED
|
@@ -1,7 +1,37 @@
|
|
|
1
|
-
#
|
|
1
|
+
# react-native-okhi
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The OkHi React Native library enables you to collect and verify addresses from your users
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
npm install react-native-okhi
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```js
|
|
17
|
+
import { multiply } from 'react-native-okhi';
|
|
18
|
+
|
|
19
|
+
// ...
|
|
20
|
+
|
|
21
|
+
const result = multiply(3, 7);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Contributing
|
|
26
|
+
|
|
27
|
+
- [Development workflow](CONTRIBUTING.md#development-workflow)
|
|
28
|
+
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
|
|
29
|
+
- [Code of conduct](CODE_OF_CONDUCT.md)
|
|
30
|
+
|
|
31
|
+
## License
|
|
32
|
+
|
|
33
|
+
MIT
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = "ReactNativeOkHi"
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.homepage = package["homepage"]
|
|
10
|
+
s.license = package["license"]
|
|
11
|
+
s.authors = package["author"]
|
|
12
|
+
|
|
13
|
+
s.platforms = { :ios => min_ios_version_supported }
|
|
14
|
+
s.source = { :git => "https://github.com/OkHi/react-native-okhi.git", :tag => "#{s.version}" }
|
|
15
|
+
|
|
16
|
+
s.source_files = "ios/**/*.{h,m,mm,swift,cpp}"
|
|
17
|
+
s.private_header_files = "ios/**/*.h"
|
|
18
|
+
|
|
19
|
+
s.dependency "OkHi", "~> 1.10.5"
|
|
20
|
+
install_modules_dependencies(s)
|
|
21
|
+
end
|
package/android/build.gradle
CHANGED
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
buildscript {
|
|
2
|
+
ext.getExtOrDefault = {name ->
|
|
3
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['Okhi_' + name]
|
|
4
|
+
}
|
|
5
|
+
|
|
2
6
|
repositories {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
maven { url "https://repo.okhi.io/artifactory/maven" }
|
|
7
|
+
google()
|
|
8
|
+
mavenCentral()
|
|
6
9
|
}
|
|
7
10
|
|
|
8
11
|
dependencies {
|
|
9
|
-
classpath
|
|
12
|
+
classpath "com.android.tools.build:gradle:8.7.2"
|
|
13
|
+
// noinspection DifferentKotlinGradleVersion
|
|
14
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
10
15
|
}
|
|
11
16
|
}
|
|
12
17
|
|
|
13
|
-
def isNewArchitectureEnabled() {
|
|
14
|
-
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
apply plugin: 'com.android.library'
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
19
|
+
apply plugin: "com.android.library"
|
|
20
|
+
apply plugin: "kotlin-android"
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['Okhi_' + name]
|
|
25
|
-
}
|
|
22
|
+
apply plugin: "com.facebook.react"
|
|
26
23
|
|
|
27
24
|
def getExtOrIntegerDefault(name) {
|
|
28
|
-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties[
|
|
25
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["Okhi_" + name]).toInteger()
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
android {
|
|
32
|
-
|
|
29
|
+
namespace "com.okhi"
|
|
30
|
+
|
|
31
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
33
32
|
|
|
34
33
|
defaultConfig {
|
|
35
|
-
minSdkVersion getExtOrIntegerDefault(
|
|
36
|
-
targetSdkVersion getExtOrIntegerDefault(
|
|
37
|
-
|
|
34
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
35
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
buildFeatures {
|
|
39
|
+
buildConfig true
|
|
38
40
|
}
|
|
41
|
+
|
|
39
42
|
buildTypes {
|
|
40
43
|
release {
|
|
41
44
|
minifyEnabled false
|
|
@@ -43,98 +46,34 @@ android {
|
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
lintOptions {
|
|
46
|
-
disable
|
|
49
|
+
disable "GradleCompatible"
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
compileOptions {
|
|
50
53
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
51
54
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
52
55
|
}
|
|
56
|
+
|
|
57
|
+
sourceSets {
|
|
58
|
+
main {
|
|
59
|
+
java.srcDirs += [
|
|
60
|
+
"generated/java",
|
|
61
|
+
"generated/jni"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
53
65
|
}
|
|
54
66
|
|
|
55
67
|
repositories {
|
|
56
68
|
mavenCentral()
|
|
57
69
|
google()
|
|
58
|
-
|
|
59
|
-
def found = false
|
|
60
|
-
def defaultDir = null
|
|
61
|
-
def androidSourcesName = 'React Native sources'
|
|
62
|
-
|
|
63
|
-
if (rootProject.ext.has('reactNativeAndroidRoot')) {
|
|
64
|
-
defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
|
|
65
|
-
} else {
|
|
66
|
-
defaultDir = new File(
|
|
67
|
-
projectDir,
|
|
68
|
-
'/../../../node_modules/react-native/android'
|
|
69
|
-
)
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (defaultDir.exists()) {
|
|
73
|
-
maven {
|
|
74
|
-
url defaultDir.toString()
|
|
75
|
-
name androidSourcesName
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${defaultDir.canonicalPath}")
|
|
79
|
-
found = true
|
|
80
|
-
} else {
|
|
81
|
-
def parentDir = rootProject.projectDir
|
|
82
|
-
|
|
83
|
-
1.upto(5, {
|
|
84
|
-
if (found) return true
|
|
85
|
-
parentDir = parentDir.parentFile
|
|
86
|
-
|
|
87
|
-
def androidSourcesDir = new File(
|
|
88
|
-
parentDir,
|
|
89
|
-
'node_modules/react-native'
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
def androidPrebuiltBinaryDir = new File(
|
|
93
|
-
parentDir,
|
|
94
|
-
'node_modules/react-native/android'
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
if (androidPrebuiltBinaryDir.exists()) {
|
|
98
|
-
maven {
|
|
99
|
-
url androidPrebuiltBinaryDir.toString()
|
|
100
|
-
name androidSourcesName
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${androidPrebuiltBinaryDir.canonicalPath}")
|
|
104
|
-
found = true
|
|
105
|
-
} else if (androidSourcesDir.exists()) {
|
|
106
|
-
maven {
|
|
107
|
-
url androidSourcesDir.toString()
|
|
108
|
-
name androidSourcesName
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${androidSourcesDir.canonicalPath}")
|
|
112
|
-
found = true
|
|
113
|
-
}
|
|
114
|
-
})
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (!found) {
|
|
118
|
-
throw new GradleException(
|
|
119
|
-
"${project.name}: unable to locate React Native android sources. " +
|
|
120
|
-
"Ensure you have you installed React Native as a dependency in your project and try again."
|
|
121
|
-
)
|
|
122
|
-
}
|
|
70
|
+
maven { url "https://repo.okhi.io/artifactory/maven" }
|
|
123
71
|
}
|
|
124
72
|
|
|
73
|
+
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
125
74
|
|
|
126
75
|
dependencies {
|
|
127
|
-
|
|
128
|
-
implementation "com.facebook.react:react-
|
|
129
|
-
implementation
|
|
130
|
-
implementation 'io.okhi.android:okverify:1.9.82'
|
|
131
|
-
// From node_modules
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (isNewArchitectureEnabled()) {
|
|
135
|
-
react {
|
|
136
|
-
jsRootDir = file("../src/")
|
|
137
|
-
libraryName = "Okhi"
|
|
138
|
-
codegenJavaPackageName = "com.reactnativeokhi"
|
|
139
|
-
}
|
|
76
|
+
implementation 'io.okhi.android:okhi:1.0.0'
|
|
77
|
+
implementation "com.facebook.react:react-android"
|
|
78
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
140
79
|
}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
package com.okhi
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.Callback
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.bridge.ReadableMap
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
8
|
+
import io.okhi.android.OkHi
|
|
9
|
+
import io.okhi.android.collect.OkCollect
|
|
10
|
+
import io.okhi.android.collect.OkCollectConfig
|
|
11
|
+
import io.okhi.android.collect.OkCollectStyle
|
|
12
|
+
import io.okhi.android.collect.models.OkHiSuccessResponse
|
|
13
|
+
import io.okhi.android.core.interfaces.OkHiAddressVerificationCallback
|
|
14
|
+
import io.okhi.android.core.model.OkHiAuth
|
|
15
|
+
import io.okhi.android.core.model.OkHiException
|
|
16
|
+
import io.okhi.android.core.model.OkHiLocation
|
|
17
|
+
import io.okhi.android.core.model.OkHiUser
|
|
18
|
+
|
|
19
|
+
@ReactModule(name = OkhiModule.NAME)
|
|
20
|
+
class OkhiModule(reactContext: ReactApplicationContext) : NativeOkhiSpec(reactContext) {
|
|
21
|
+
var currentCallback: Callback? = null
|
|
22
|
+
|
|
23
|
+
val okhiAddressVerificationCallback = object : OkHiAddressVerificationCallback() {
|
|
24
|
+
override fun onClose() {
|
|
25
|
+
val error = Arguments.createMap().apply {
|
|
26
|
+
putString("code", "user_closed")
|
|
27
|
+
putString("message", "user closed address creation")
|
|
28
|
+
}
|
|
29
|
+
currentCallback?.invoke(null, error)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
override fun onError(e: OkHiException) {
|
|
33
|
+
val error = Arguments.createMap().apply {
|
|
34
|
+
putString("code", e.code)
|
|
35
|
+
putString("message", e.message)
|
|
36
|
+
}
|
|
37
|
+
currentCallback?.invoke(null, error)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
override fun onSuccess(response: OkHiSuccessResponse) {
|
|
41
|
+
val response = Arguments.createMap().apply {
|
|
42
|
+
putString("user", response.user.toJSON().toString())
|
|
43
|
+
putString("location", response.location.toJSON().toString())
|
|
44
|
+
}
|
|
45
|
+
currentCallback?.invoke(response, null)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override fun getName(): String {
|
|
50
|
+
return NAME
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
override fun multiply(a: Double, b: Double): Double {
|
|
54
|
+
return a * b
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
override fun login(credentials: ReadableMap?, callback: Callback?) {
|
|
58
|
+
if (credentials == null) {
|
|
59
|
+
callback?.invoke(null)
|
|
60
|
+
return
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
val authMap = credentials.getMap("auth")
|
|
64
|
+
val userMap = credentials.getMap("user")
|
|
65
|
+
|
|
66
|
+
if (authMap == null || userMap == null) {
|
|
67
|
+
callback?.invoke(null)
|
|
68
|
+
return
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
val branchId = authMap.getString("branchId") ?: ""
|
|
72
|
+
val clientKey = authMap.getString("clientKey") ?: ""
|
|
73
|
+
val env = authMap.getString("env") ?: "prod"
|
|
74
|
+
|
|
75
|
+
val phone = userMap.getString("phone") ?: ""
|
|
76
|
+
val firstName = userMap.getString("firstName") ?: ""
|
|
77
|
+
val lastName = userMap.getString("lastName") ?: ""
|
|
78
|
+
val email = userMap.getString("email") ?: ""
|
|
79
|
+
val appUserId = if (userMap.hasKey("appUserId")) userMap.getString("appUserId") else null
|
|
80
|
+
|
|
81
|
+
val auth = OkHiAuth(
|
|
82
|
+
branchId = branchId,
|
|
83
|
+
clientKey = clientKey,
|
|
84
|
+
env = env
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
val user = OkHiUser(
|
|
88
|
+
firstName = firstName,
|
|
89
|
+
lastName = lastName,
|
|
90
|
+
phone = phone,
|
|
91
|
+
email = email,
|
|
92
|
+
appUserId = appUserId
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
OkHi.login(reactApplicationContext.applicationContext, auth, user) { results ->
|
|
96
|
+
if (results != null) {
|
|
97
|
+
val writableArray = Arguments.createArray()
|
|
98
|
+
for (result in results) {
|
|
99
|
+
writableArray.pushString(result)
|
|
100
|
+
}
|
|
101
|
+
callback?.invoke(writableArray)
|
|
102
|
+
} else {
|
|
103
|
+
callback?.invoke(null)
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
override fun startDigitalAddressVerification(okcollect: ReadableMap?, callback: Callback?) {
|
|
109
|
+
currentCallback = callback
|
|
110
|
+
val activity = reactApplicationContext.currentActivity
|
|
111
|
+
if (activity == null) {
|
|
112
|
+
val error = Arguments.createMap().apply {
|
|
113
|
+
putString("code", "unknown")
|
|
114
|
+
putString("message", "unable to get current activity")
|
|
115
|
+
}
|
|
116
|
+
callback?.invoke(null, error)
|
|
117
|
+
} else {
|
|
118
|
+
OkHi.startDigitalAddressVerification(
|
|
119
|
+
activity = activity,
|
|
120
|
+
collect = parseOkCollect(okcollect),
|
|
121
|
+
callback = okhiAddressVerificationCallback
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
override fun startPhysicalAddressVerification(okcollect: ReadableMap?, callback: Callback?) {
|
|
127
|
+
currentCallback = callback
|
|
128
|
+
val activity = reactApplicationContext.currentActivity
|
|
129
|
+
if (activity == null) {
|
|
130
|
+
val error = Arguments.createMap().apply {
|
|
131
|
+
putString("code", "unknown")
|
|
132
|
+
putString("message", "unable to get current activity")
|
|
133
|
+
}
|
|
134
|
+
callback?.invoke(null, error)
|
|
135
|
+
} else {
|
|
136
|
+
OkHi.startPhysicalAddressVerification(
|
|
137
|
+
activity = activity,
|
|
138
|
+
collect = parseOkCollect(okcollect),
|
|
139
|
+
callback = okhiAddressVerificationCallback
|
|
140
|
+
)
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
override fun startDigitalAndPhysicalAddressVerification(okcollect: ReadableMap?, callback: Callback?) {
|
|
145
|
+
currentCallback = callback
|
|
146
|
+
val activity = reactApplicationContext.currentActivity
|
|
147
|
+
if (activity == null) {
|
|
148
|
+
val error = Arguments.createMap().apply {
|
|
149
|
+
putString("code", "unknown")
|
|
150
|
+
putString("message", "unable to get current activity")
|
|
151
|
+
}
|
|
152
|
+
callback?.invoke(null, error)
|
|
153
|
+
} else {
|
|
154
|
+
OkHi.startDigitalAndPhysicalAddressVerification(
|
|
155
|
+
activity = activity,
|
|
156
|
+
collect = parseOkCollect(okcollect),
|
|
157
|
+
callback = okhiAddressVerificationCallback
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
override fun createAddress(okcollect: ReadableMap?, callback: Callback?) {
|
|
163
|
+
currentCallback = callback
|
|
164
|
+
val activity = reactApplicationContext.currentActivity
|
|
165
|
+
if (activity == null) {
|
|
166
|
+
val error = Arguments.createMap().apply {
|
|
167
|
+
putString("code", "unknown")
|
|
168
|
+
putString("message", "unable to get current activity")
|
|
169
|
+
}
|
|
170
|
+
callback?.invoke(null, error)
|
|
171
|
+
} else {
|
|
172
|
+
OkHi.createAddress(
|
|
173
|
+
activity = activity,
|
|
174
|
+
collect = parseOkCollect(okcollect),
|
|
175
|
+
callback = okhiAddressVerificationCallback
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
private fun parseOkCollect(okcollect: ReadableMap?): OkCollect {
|
|
181
|
+
var nativeOkCollect: OkCollect? = null
|
|
182
|
+
if (okcollect == null) {
|
|
183
|
+
nativeOkCollect = OkCollect()
|
|
184
|
+
} else {
|
|
185
|
+
val styleMap = okcollect.getMap("style")
|
|
186
|
+
val color = styleMap?.getString("color") ?: "#005D67"
|
|
187
|
+
val logo = styleMap?.getString("color") ?: "https://cdn.okhi.co/icon.png"
|
|
188
|
+
|
|
189
|
+
val configurationMap = okcollect.getMap("configuration")
|
|
190
|
+
val streetView = configurationMap?.getBoolean("streetView") ?: true
|
|
191
|
+
val withHomeAddressType = configurationMap?.getBoolean("withHomeAddressType") ?: true
|
|
192
|
+
val withWorkAddressType = configurationMap?.getBoolean("withWorkAddressType") ?: false
|
|
193
|
+
val withAppBar = configurationMap?.getBoolean("withAppBar") ?: true
|
|
194
|
+
|
|
195
|
+
val locationId = if (okcollect.hasKey("locationId")) okcollect.getString("locationId") else null
|
|
196
|
+
|
|
197
|
+
val style = OkCollectStyle(
|
|
198
|
+
color = color,
|
|
199
|
+
name = name,
|
|
200
|
+
logo = logo
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
val config = OkCollectConfig(
|
|
204
|
+
streetView = streetView,
|
|
205
|
+
withHomeAddressType = withHomeAddressType,
|
|
206
|
+
withWorkAddressType = withWorkAddressType,
|
|
207
|
+
withAppBar = withAppBar
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
var nativeLocation: OkHiLocation? = null
|
|
211
|
+
if (locationId != null) {
|
|
212
|
+
nativeLocation = OkHiLocation(locationId)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
nativeOkCollect = OkCollect(
|
|
216
|
+
style,
|
|
217
|
+
config,
|
|
218
|
+
nativeLocation
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return nativeOkCollect
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Helper Methods
|
|
226
|
+
|
|
227
|
+
override fun isLocationServicesEnabled(callback: Callback?) {
|
|
228
|
+
val result = OkHi.isLocationServicesEnabled(reactApplicationContext.applicationContext)
|
|
229
|
+
callback?.invoke(result, null)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
override fun canOpenProtectedApps(callback: Callback?) {
|
|
233
|
+
val result = OkHi.canOpenProtectedApps(reactApplicationContext.applicationContext)
|
|
234
|
+
callback?.invoke(result, null)
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
override fun getLocationAccuracyLevel(callback: Callback?) {
|
|
238
|
+
val result = OkHi.getLocationAccuracyLevel(reactApplicationContext.applicationContext)
|
|
239
|
+
callback?.invoke(result.toString(), null)
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
override fun isBackgroundLocationPermissionGranted(callback: Callback?) {
|
|
243
|
+
val result = OkHi.isBackgroundLocationPermissionGranted(reactApplicationContext.applicationContext)
|
|
244
|
+
callback?.invoke(result, null)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
override fun isCoarseLocationPermissionGranted(callback: Callback?) {
|
|
248
|
+
val result = OkHi.isCoarseLocationPermissionGranted(reactApplicationContext.applicationContext)
|
|
249
|
+
callback?.invoke(result, null)
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
override fun isFineLocationPermissionGranted(callback: Callback?) {
|
|
253
|
+
val result = OkHi.isFineLocationPermissionGranted(reactApplicationContext.applicationContext)
|
|
254
|
+
callback?.invoke(result, null)
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
override fun isPlayServicesAvailable(callback: Callback?) {
|
|
258
|
+
val result = OkHi.isPlayServicesAvailable(reactApplicationContext.applicationContext)
|
|
259
|
+
callback?.invoke(result, null)
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
override fun isPostNotificationPermissionGranted(callback: Callback?) {
|
|
263
|
+
val result = OkHi.isPostNotificationPermissionGranted(reactApplicationContext.applicationContext)
|
|
264
|
+
callback?.invoke(result, null)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
override fun openProtectedApps() {
|
|
268
|
+
OkHi.openProtectedApps(reactApplicationContext.applicationContext)
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// Request Helpers
|
|
272
|
+
|
|
273
|
+
override fun requestLocationPermission(callback: Callback?) {
|
|
274
|
+
val activity = reactApplicationContext.currentActivity
|
|
275
|
+
if (activity == null) {
|
|
276
|
+
val error = Arguments.createMap().apply {
|
|
277
|
+
putString("code", "unknown")
|
|
278
|
+
putString("message", "unable to get current activity")
|
|
279
|
+
}
|
|
280
|
+
callback?.invoke(null, error)
|
|
281
|
+
} else {
|
|
282
|
+
OkHi.requestLocationPermission(activity) { result ->
|
|
283
|
+
callback?.invoke(result, null)
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
override fun requestBackgroundLocationPermission(callback: Callback?) {
|
|
289
|
+
val activity = reactApplicationContext.currentActivity
|
|
290
|
+
if (activity == null) {
|
|
291
|
+
val error = Arguments.createMap().apply {
|
|
292
|
+
putString("code", "unknown")
|
|
293
|
+
putString("message", "unable to get current activity")
|
|
294
|
+
}
|
|
295
|
+
callback?.invoke(null, error)
|
|
296
|
+
} else {
|
|
297
|
+
OkHi.requestBackgroundLocationPermission(activity) { result ->
|
|
298
|
+
callback?.invoke(result, null)
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
override fun requestEnableLocationServices(callback: Callback?) {
|
|
304
|
+
val activity = reactApplicationContext.currentActivity
|
|
305
|
+
if (activity == null) {
|
|
306
|
+
val error = Arguments.createMap().apply {
|
|
307
|
+
putString("code", "unknown")
|
|
308
|
+
putString("message", "unable to get current activity")
|
|
309
|
+
}
|
|
310
|
+
callback?.invoke(null, error)
|
|
311
|
+
} else {
|
|
312
|
+
OkHi.requestEnableLocationServices(activity) { result ->
|
|
313
|
+
callback?.invoke(result, null)
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
override fun requestPostNotificationPermissions(callback: Callback?) {
|
|
319
|
+
val activity = reactApplicationContext.currentActivity
|
|
320
|
+
if (activity == null) {
|
|
321
|
+
val error = Arguments.createMap().apply {
|
|
322
|
+
putString("code", "unknown")
|
|
323
|
+
putString("message", "unable to get current activity")
|
|
324
|
+
}
|
|
325
|
+
callback?.invoke(null, error)
|
|
326
|
+
} else {
|
|
327
|
+
OkHi.requestPostNotificationPermissions(activity) { result ->
|
|
328
|
+
callback?.invoke(result, null)
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
companion object {
|
|
334
|
+
const val NAME = "Okhi"
|
|
335
|
+
}
|
|
336
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
package com.okhi
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
|
+
import java.util.HashMap
|
|
9
|
+
|
|
10
|
+
class OkhiPackage : BaseReactPackage() {
|
|
11
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
12
|
+
return if (name == OkhiModule.NAME) {
|
|
13
|
+
OkhiModule(reactContext)
|
|
14
|
+
} else {
|
|
15
|
+
null
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
20
|
+
return ReactModuleInfoProvider {
|
|
21
|
+
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
22
|
+
moduleInfos[OkhiModule.NAME] = ReactModuleInfo(
|
|
23
|
+
OkhiModule.NAME,
|
|
24
|
+
OkhiModule.NAME,
|
|
25
|
+
false, // canOverrideExistingModule
|
|
26
|
+
false, // needsEagerInit
|
|
27
|
+
false, // isCxxModule
|
|
28
|
+
true // isTurboModule
|
|
29
|
+
)
|
|
30
|
+
moduleInfos
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|