@smile_identity/react-native 10.0.0-beta01 → 10.0.0-beta03
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/README.md +1 -1
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/smileidentity/react/Mapper.kt +179 -0
- package/android/src/main/java/com/smileidentity/react/SmileIdModule.kt +76 -49
- package/android/src/main/java/com/smileidentity/react/SmileIdPackage.kt +4 -2
- package/android/src/main/java/com/smileidentity/react/utils/ReactUtils.kt +9 -38
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBiometricKYCViewManager.kt +41 -9
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDConsentViewManager.kt +83 -0
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentVerificationViewManager.kt +45 -9
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDEnhancedDocumentVerificationViewManager.kt +77 -0
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationViewManager.kt +36 -9
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentViewManager.kt +36 -9
- package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYCView.kt +64 -0
- package/android/src/main/java/com/smileidentity/react/views/SmileIDConsentView.kt +67 -0
- package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerificationView.kt +77 -0
- package/android/src/main/java/com/smileidentity/react/views/SmileIDEnhancedDocumentVerificationView.kt +71 -0
- package/android/src/main/java/com/smileidentity/react/views/{SmileIDSmartSelfieAuthentication.kt → SmileIDSmartSelfieAuthenticationView.kt} +15 -4
- package/android/src/main/java/com/smileidentity/react/views/{SmileIDSmartSelfieEnrollment.kt → SmileIDSmartSelfieEnrollmentView.kt} +14 -5
- package/android/src/main/java/com/smileidentity/react/views/SmileIDView.kt +3 -27
- package/android/src/oldarch/SmileIdSpec.kt +26 -1
- package/ios/RNDelegates/SmileIDUIViewDelegate.swift +4 -0
- package/ios/RNDelegates/SmileIDViewDelegate.swift +5 -0
- package/ios/RNSmileID.mm +7 -0
- package/ios/RNSmileID.swift +147 -0
- package/ios/SmileId.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/SmileId.xcodeproj/project.xcworkspace/xcuserdata/japhetndhlovu.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/SmileId.xcodeproj/xcuserdata/japhetndhlovu.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/ios/Utils/SmileIDDictExt.swift +50 -0
- package/ios/Utils/SmileIDUtils.swift +10 -0
- package/ios/View/BaseSmileIDView.swift +35 -0
- package/ios/View/SmileIDBiometricKYCView.swift +46 -0
- package/ios/View/SmileIDConsentView.swift +36 -0
- package/ios/View/SmileIDDocumentVerificationView.swift +55 -0
- package/ios/View/SmileIDEnhancedDocumentVerificationView.swift +55 -0
- package/ios/View/SmileIDSmartSelfieAuthView.swift +41 -0
- package/ios/View/SmileIDSmartSelfieEnrollmentView.swift +41 -0
- package/ios/ViewManagers/SmileIDBaseViewManager.swift +18 -0
- package/ios/ViewManagers/SmileIDBiometricKYCViewManager.m +6 -0
- package/ios/ViewManagers/SmileIDBiometricKYCViewManager.swift +34 -0
- package/ios/ViewManagers/SmileIDConsentViewManager.m +6 -0
- package/ios/ViewManagers/SmileIDConsentViewManager.swift +47 -0
- package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.m +6 -0
- package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.swift +49 -0
- package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.m +6 -0
- package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.swift +49 -0
- package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.m +6 -0
- package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.swift +27 -0
- package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.m +6 -0
- package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.swift +27 -0
- package/ios/ViewModels/SmileIDProductModel.swift +30 -0
- package/ios/react-native-smile-id-Bridging-Header.h +8 -0
- package/lib/commonjs/NativeSmileId.js +1 -1
- package/lib/commonjs/NativeSmileId.js.map +1 -1
- package/lib/commonjs/SmileIDBiometricKYCView.js +40 -0
- package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -0
- package/lib/commonjs/SmileIDConsentView.js +40 -0
- package/lib/commonjs/SmileIDConsentView.js.map +1 -0
- package/lib/commonjs/SmileIDDocumentVerificationView.js +40 -0
- package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -0
- package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +40 -0
- package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
- package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +40 -0
- package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
- package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +40 -0
- package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
- package/lib/commonjs/index.js +194 -27
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +517 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/NativeSmileId.js +1 -1
- package/lib/module/NativeSmileId.js.map +1 -1
- package/lib/module/SmileIDBiometricKYCView.js +30 -0
- package/lib/module/SmileIDBiometricKYCView.js.map +1 -0
- package/lib/module/SmileIDConsentView.js +30 -0
- package/lib/module/SmileIDConsentView.js.map +1 -0
- package/lib/module/SmileIDDocumentVerificationView.js +30 -0
- package/lib/module/SmileIDDocumentVerificationView.js.map +1 -0
- package/lib/module/SmileIDEnhancedDocumentVerificationView.js +30 -0
- package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
- package/lib/module/SmileIDSmartSelfieAuthenticationView.js +30 -0
- package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
- package/lib/module/SmileIDSmartSelfieEnrollmentView.js +30 -0
- package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
- package/lib/module/index.js +33 -21
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +472 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/NativeSmileId.d.ts +22 -3
- package/lib/typescript/NativeSmileId.d.ts.map +1 -1
- package/lib/typescript/SmileIDBiometricKYCView.d.ts +8 -0
- package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +1 -0
- package/lib/typescript/SmileIDConsentView.d.ts +8 -0
- package/lib/typescript/SmileIDConsentView.d.ts.map +1 -0
- package/lib/typescript/SmileIDDocumentVerificationView.d.ts +8 -0
- package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +1 -0
- package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts +8 -0
- package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -0
- package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts +8 -0
- package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -0
- package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts +8 -0
- package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +24 -86
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +504 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +3 -4
- package/react-native-smile-id.podspec +2 -2
- package/src/NativeSmileId.ts +68 -9
- package/src/SmileIDBiometricKYCView.tsx +45 -0
- package/src/SmileIDConsentView.tsx +44 -0
- package/src/SmileIDDocumentVerificationView.tsx +51 -0
- package/src/SmileIDEnhancedDocumentVerificationView.tsx +51 -0
- package/src/SmileIDSmartSelfieAuthenticationView.tsx +51 -0
- package/src/SmileIDSmartSelfieEnrollmentView.tsx +51 -0
- package/src/index.tsx +86 -122
- package/src/types.ts +1084 -0
- package/android/src/main/assets/smile_config.json +0 -9
- package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBVNConsentViewManager.kt +0 -42
- package/android/src/main/java/com/smileidentity/react/views/SmileIDBVNConsentScreen.kt +0 -54
- package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYC.kt +0 -89
- package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerification.kt +0 -59
- package/ios/SmileId.h +0 -12
- package/ios/SmileId.mm +0 -27
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
package com.smileidentity.react.viewmanagers
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
-
import com.facebook.react.bridge.
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
6
6
|
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
7
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
-
import com.
|
|
9
|
-
import com.smileidentity.react.
|
|
8
|
+
import com.smileidentity.react.utils.getBoolOrDefault
|
|
9
|
+
import com.smileidentity.react.utils.getFloatOrDefault
|
|
10
|
+
import com.smileidentity.react.utils.getMapOrDefault
|
|
11
|
+
import com.smileidentity.react.utils.getStringOrDefault
|
|
12
|
+
import com.smileidentity.react.utils.toMap
|
|
13
|
+
import com.smileidentity.react.views.SmileIDDocumentVerificationView
|
|
10
14
|
|
|
11
15
|
|
|
12
16
|
@ReactModule(name = SmileIDDocumentVerificationViewManager.NAME)
|
|
13
17
|
class SmileIDDocumentVerificationViewManager(private val reactApplicationContext: ReactApplicationContext) :
|
|
14
|
-
SimpleViewManager<
|
|
18
|
+
SimpleViewManager<SmileIDDocumentVerificationView>() {
|
|
15
19
|
override fun getName(): String {
|
|
16
20
|
return NAME
|
|
17
21
|
}
|
|
@@ -26,17 +30,49 @@ class SmileIDDocumentVerificationViewManager(private val reactApplicationContext
|
|
|
26
30
|
)
|
|
27
31
|
}
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
view.product = product
|
|
33
|
+
override fun getCommandsMap(): Map<String, Int> {
|
|
34
|
+
return mapOf("setParams" to COMMAND_SET_PARAMS)
|
|
32
35
|
}
|
|
33
36
|
|
|
34
|
-
override fun
|
|
35
|
-
|
|
37
|
+
override fun receiveCommand(
|
|
38
|
+
view: SmileIDDocumentVerificationView,
|
|
39
|
+
commandId: String?,
|
|
40
|
+
args: ReadableArray?
|
|
41
|
+
) {
|
|
42
|
+
super.receiveCommand(view, commandId, args)
|
|
43
|
+
when (commandId?.toInt()) {
|
|
44
|
+
COMMAND_SET_PARAMS -> {
|
|
45
|
+
// Extract params from args and apply to view
|
|
46
|
+
val params = args?.getMap(0)
|
|
47
|
+
params?.let {
|
|
48
|
+
val countryCode = params.getString("countryCode")
|
|
49
|
+
?: return view.emitFailure(IllegalArgumentException("countryCode is required to run Document Verification"))
|
|
50
|
+
view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams")?.toMap()
|
|
51
|
+
view.userId = params.getStringOrDefault("userId")
|
|
52
|
+
view.jobId = params.getStringOrDefault("jobId")
|
|
53
|
+
view.countryCode = countryCode
|
|
54
|
+
view.allowAgentMode = params.getBoolOrDefault("allowAgentMode", false)
|
|
55
|
+
view.showAttribution = params.getBoolOrDefault("showAttribution", true)
|
|
56
|
+
view.captureBothSides = params.getBoolOrDefault("captureBothSides", false)
|
|
57
|
+
view.showInstructions = params.getBoolOrDefault("showInstructions", true)
|
|
58
|
+
view.allowGalleryUpload = params.getBoolOrDefault("allowGalleryUpload", false)
|
|
59
|
+
view.bypassSelfieCaptureWithFilePath = params.getStringOrDefault("bypassSelfieCaptureWithFilePath", null)
|
|
60
|
+
view.documentType = params.getStringOrDefault("documentType", null)
|
|
61
|
+
view.idAspectRatio = params.getFloatOrDefault("idAspectRatio", -1f)
|
|
62
|
+
view.allowNewEnroll = params.getBoolOrDefault("allowNewEnroll", false)
|
|
63
|
+
view.renderContent()
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun createViewInstance(p0: ThemedReactContext): SmileIDDocumentVerificationView {
|
|
70
|
+
return SmileIDDocumentVerificationView(reactApplicationContext)
|
|
36
71
|
}
|
|
37
72
|
|
|
38
73
|
companion object {
|
|
39
74
|
const val NAME = "SmileIDDocumentVerificationView"
|
|
75
|
+
const val COMMAND_SET_PARAMS = 4
|
|
40
76
|
}
|
|
41
77
|
|
|
42
78
|
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
package com.smileidentity.react.viewmanagers
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
6
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
+
import com.smileidentity.react.utils.getBoolOrDefault
|
|
9
|
+
import com.smileidentity.react.utils.getFloatOrDefault
|
|
10
|
+
import com.smileidentity.react.utils.getMapOrDefault
|
|
11
|
+
import com.smileidentity.react.utils.getStringOrDefault
|
|
12
|
+
import com.smileidentity.react.utils.toMap
|
|
13
|
+
import com.smileidentity.react.views.SmileIDEnhancedDocumentVerificationView
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@ReactModule(name = SmileIDEnhancedDocumentVerificationViewManager.NAME)
|
|
17
|
+
class SmileIDEnhancedDocumentVerificationViewManager(private val reactApplicationContext: ReactApplicationContext) :
|
|
18
|
+
SimpleViewManager<SmileIDEnhancedDocumentVerificationView>() {
|
|
19
|
+
override fun getName(): String {
|
|
20
|
+
return NAME
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
override fun getExportedCustomBubblingEventTypeConstants(): Map<String, Any> {
|
|
24
|
+
return mapOf(
|
|
25
|
+
"onSmileResult" to mapOf(
|
|
26
|
+
"phasedRegistrationNames" to mapOf(
|
|
27
|
+
"bubbled" to "onResult"
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
override fun getCommandsMap(): Map<String, Int> {
|
|
34
|
+
return mapOf("setParams" to COMMAND_SET_PARAMS)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun receiveCommand(
|
|
38
|
+
view: SmileIDEnhancedDocumentVerificationView,
|
|
39
|
+
commandId: String?,
|
|
40
|
+
args: ReadableArray?
|
|
41
|
+
) {
|
|
42
|
+
super.receiveCommand(view, commandId, args)
|
|
43
|
+
when (commandId?.toInt()) {
|
|
44
|
+
COMMAND_SET_PARAMS -> {
|
|
45
|
+
// Extract params from args and apply to view
|
|
46
|
+
val params = args?.getMap(0)
|
|
47
|
+
params?.let {
|
|
48
|
+
val countryCode = params.getString("countryCode")
|
|
49
|
+
?: return view.emitFailure(IllegalArgumentException("countryCode is required to run Enhanced Document Verification"))
|
|
50
|
+
view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams")?.toMap()
|
|
51
|
+
view.userId = params.getStringOrDefault("userId")
|
|
52
|
+
view.jobId = params.getStringOrDefault("jobId")
|
|
53
|
+
view.countryCode = countryCode
|
|
54
|
+
view.allowAgentMode = params.getBoolOrDefault("allowAgentMode", false)
|
|
55
|
+
view.showAttribution = params.getBoolOrDefault("showAttribution", true)
|
|
56
|
+
view.captureBothSides = params.getBoolOrDefault("captureBothSides", false)
|
|
57
|
+
view.showInstructions = params.getBoolOrDefault("showInstructions", true)
|
|
58
|
+
view.allowGalleryUpload = params.getBoolOrDefault("allowGalleryUpload", false)
|
|
59
|
+
view.documentType = params.getStringOrDefault("documentType")
|
|
60
|
+
view.idAspectRatio = params.getFloatOrDefault("idAspectRatio", -1f)
|
|
61
|
+
view.allowNewEnroll = params.getBoolOrDefault("allowNewEnroll", false)
|
|
62
|
+
view.renderContent()
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
override fun createViewInstance(p0: ThemedReactContext): SmileIDEnhancedDocumentVerificationView {
|
|
69
|
+
return SmileIDEnhancedDocumentVerificationView(reactApplicationContext)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
companion object {
|
|
73
|
+
const val NAME = "SmileIDEnhancedDocumentVerificationView"
|
|
74
|
+
const val COMMAND_SET_PARAMS = 3
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
package com.smileidentity.react.viewmanagers
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
-
import com.facebook.react.bridge.
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
6
6
|
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
7
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
-
import com.
|
|
9
|
-
import com.smileidentity.react.
|
|
8
|
+
import com.smileidentity.react.utils.getBoolOrDefault
|
|
9
|
+
import com.smileidentity.react.utils.getMapOrDefault
|
|
10
|
+
import com.smileidentity.react.utils.getStringOrDefault
|
|
11
|
+
import com.smileidentity.react.utils.toMap
|
|
12
|
+
import com.smileidentity.react.views.SmileIDSmartSelfieAuthenticationView
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
@ReactModule(name = SmileIDSmartSelfieAuthenticationViewManager.NAME)
|
|
13
16
|
class SmileIDSmartSelfieAuthenticationViewManager(private val reactApplicationContext: ReactApplicationContext) :
|
|
14
|
-
SimpleViewManager<
|
|
17
|
+
SimpleViewManager<SmileIDSmartSelfieAuthenticationView>() {
|
|
15
18
|
override fun getName(): String {
|
|
16
19
|
return NAME
|
|
17
20
|
}
|
|
@@ -26,17 +29,41 @@ class SmileIDSmartSelfieAuthenticationViewManager(private val reactApplicationCo
|
|
|
26
29
|
)
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
view.product = product
|
|
32
|
+
override fun getCommandsMap(): Map<String, Int> {
|
|
33
|
+
return mapOf("setParams" to COMMAND_SET_PARAMS)
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
override fun
|
|
35
|
-
|
|
36
|
+
override fun receiveCommand(
|
|
37
|
+
view: SmileIDSmartSelfieAuthenticationView,
|
|
38
|
+
commandId: String?,
|
|
39
|
+
args: ReadableArray?
|
|
40
|
+
) {
|
|
41
|
+
super.receiveCommand(view, commandId, args)
|
|
42
|
+
when (commandId?.toInt()) {
|
|
43
|
+
COMMAND_SET_PARAMS -> {
|
|
44
|
+
// Extract params from args and apply to view
|
|
45
|
+
val params = args?.getMap(0)
|
|
46
|
+
params?.let {
|
|
47
|
+
view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams")?.toMap()
|
|
48
|
+
view.userId = params.getStringOrDefault("userId")
|
|
49
|
+
view.jobId = params.getStringOrDefault("jobId")
|
|
50
|
+
view.allowAgentMode = params.getBoolOrDefault("allowAgentMode", false)
|
|
51
|
+
view.showAttribution = params.getBoolOrDefault("showAttribution", true)
|
|
52
|
+
view.showInstructions = params.getBoolOrDefault("showInstructions", true)
|
|
53
|
+
view.allowNewEnroll = params.getBoolOrDefault("allowNewEnroll", false)
|
|
54
|
+
view.renderContent()
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
override fun createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieAuthenticationView {
|
|
61
|
+
return SmileIDSmartSelfieAuthenticationView(reactApplicationContext)
|
|
36
62
|
}
|
|
37
63
|
|
|
38
64
|
companion object {
|
|
39
65
|
const val NAME = "SmileIDSmartSelfieAuthenticationView"
|
|
66
|
+
const val COMMAND_SET_PARAMS = 2
|
|
40
67
|
}
|
|
41
68
|
|
|
42
69
|
}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
package com.smileidentity.react.viewmanagers
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
-
import com.facebook.react.bridge.
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
6
6
|
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
7
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
-
import com.
|
|
9
|
-
import com.smileidentity.react.
|
|
8
|
+
import com.smileidentity.react.utils.getBoolOrDefault
|
|
9
|
+
import com.smileidentity.react.utils.getMapOrDefault
|
|
10
|
+
import com.smileidentity.react.utils.getStringOrDefault
|
|
11
|
+
import com.smileidentity.react.utils.toMap
|
|
12
|
+
import com.smileidentity.react.views.SmileIDSmartSelfieEnrollmentView
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
@ReactModule(name = SmileIDSmartSelfieEnrollmentViewManager.NAME)
|
|
13
16
|
class SmileIDSmartSelfieEnrollmentViewManager(private val reactApplicationContext: ReactApplicationContext) :
|
|
14
|
-
SimpleViewManager<
|
|
17
|
+
SimpleViewManager<SmileIDSmartSelfieEnrollmentView>() {
|
|
15
18
|
override fun getName(): String {
|
|
16
19
|
return NAME
|
|
17
20
|
}
|
|
@@ -26,17 +29,41 @@ class SmileIDSmartSelfieEnrollmentViewManager(private val reactApplicationContex
|
|
|
26
29
|
)
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
view.product = product
|
|
32
|
+
override fun getCommandsMap(): Map<String, Int> {
|
|
33
|
+
return mapOf("setParams" to COMMAND_SET_PARAMS)
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
override fun
|
|
35
|
-
|
|
36
|
+
override fun receiveCommand(
|
|
37
|
+
view: SmileIDSmartSelfieEnrollmentView,
|
|
38
|
+
commandId: String?,
|
|
39
|
+
args: ReadableArray?
|
|
40
|
+
) {
|
|
41
|
+
super.receiveCommand(view, commandId, args)
|
|
42
|
+
when (commandId?.toInt()) {
|
|
43
|
+
COMMAND_SET_PARAMS -> {
|
|
44
|
+
// Extract params from args and apply to view
|
|
45
|
+
val params = args?.getMap(0)
|
|
46
|
+
params?.let {
|
|
47
|
+
view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams")?.toMap()
|
|
48
|
+
view.userId = params.getStringOrDefault("userId")
|
|
49
|
+
view.jobId = params.getStringOrDefault("jobId")
|
|
50
|
+
view.allowAgentMode = params.getBoolOrDefault("allowAgentMode", false)
|
|
51
|
+
view.showAttribution = params.getBoolOrDefault("showAttribution", true)
|
|
52
|
+
view.showInstructions = params.getBoolOrDefault("showInstructions", true)
|
|
53
|
+
view.allowNewEnroll = params.getBoolOrDefault("allowNewEnroll", false)
|
|
54
|
+
view.renderContent()
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
override fun createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieEnrollmentView {
|
|
61
|
+
return SmileIDSmartSelfieEnrollmentView(reactApplicationContext)
|
|
36
62
|
}
|
|
37
63
|
|
|
38
64
|
companion object {
|
|
39
65
|
const val NAME = "SmileIDSmartSelfieEnrollmentView"
|
|
66
|
+
const val COMMAND_SET_PARAMS = 1
|
|
40
67
|
}
|
|
41
68
|
|
|
42
69
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
package com.smileidentity.react.views
|
|
2
|
+
|
|
3
|
+
import androidx.compose.runtime.CompositionLocalProvider
|
|
4
|
+
import androidx.compose.runtime.saveable.rememberSaveable
|
|
5
|
+
import androidx.compose.ui.platform.ViewCompositionStrategy
|
|
6
|
+
import androidx.lifecycle.ViewModelStoreOwner
|
|
7
|
+
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
|
8
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
9
|
+
import com.smileidentity.SmileID
|
|
10
|
+
import com.smileidentity.compose.BiometricKYC
|
|
11
|
+
import com.smileidentity.models.IdInfo
|
|
12
|
+
import com.smileidentity.results.BiometricKycResult
|
|
13
|
+
import com.smileidentity.results.SmileIDResult
|
|
14
|
+
import com.smileidentity.util.randomJobId
|
|
15
|
+
import com.smileidentity.util.randomUserId
|
|
16
|
+
import kotlinx.collections.immutable.toImmutableMap
|
|
17
|
+
import timber.log.Timber
|
|
18
|
+
|
|
19
|
+
class SmileIDBiometricKYCView(context: ReactApplicationContext) : SmileIDView(context) {
|
|
20
|
+
var idInfo: IdInfo? = null
|
|
21
|
+
override fun renderContent() {
|
|
22
|
+
idInfo ?: run {
|
|
23
|
+
emitFailure(IllegalArgumentException("idInfo is required for BiometricKYC"))
|
|
24
|
+
return
|
|
25
|
+
}
|
|
26
|
+
composeView.apply {
|
|
27
|
+
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
|
|
28
|
+
setContent {
|
|
29
|
+
CompositionLocalProvider(LocalViewModelStoreOwner provides (context as ViewModelStoreOwner)) {
|
|
30
|
+
SmileID.BiometricKYC(
|
|
31
|
+
idInfo = idInfo!!,
|
|
32
|
+
userId = userId ?: rememberSaveable { randomUserId() },
|
|
33
|
+
jobId = jobId ?: rememberSaveable { randomJobId() },
|
|
34
|
+
allowAgentMode = allowAgentMode ?: false,
|
|
35
|
+
allowNewEnroll = allowNewEnroll ?: false,
|
|
36
|
+
showAttribution = showAttribution ?: true,
|
|
37
|
+
showInstructions = showInstructions ?: true,
|
|
38
|
+
extraPartnerParams = (extraPartnerParams ?: mapOf()).toImmutableMap(),
|
|
39
|
+
) { result ->
|
|
40
|
+
when (result) {
|
|
41
|
+
is SmileIDResult.Success -> {
|
|
42
|
+
val json = try {
|
|
43
|
+
SmileID.moshi
|
|
44
|
+
.adapter(BiometricKycResult::class.java)
|
|
45
|
+
.toJson(result.data)
|
|
46
|
+
} catch (e: Exception) {
|
|
47
|
+
Timber.w(e)
|
|
48
|
+
"null"
|
|
49
|
+
}
|
|
50
|
+
emitSuccess(json)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
is SmileIDResult.Error -> {
|
|
54
|
+
result.throwable.printStackTrace()
|
|
55
|
+
emitFailure(result.throwable)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
package com.smileidentity.react.views
|
|
2
|
+
|
|
3
|
+
import android.webkit.URLUtil
|
|
4
|
+
import androidx.compose.runtime.CompositionLocalProvider
|
|
5
|
+
import androidx.compose.ui.platform.ViewCompositionStrategy
|
|
6
|
+
import androidx.compose.ui.res.painterResource
|
|
7
|
+
import androidx.lifecycle.ViewModelStoreOwner
|
|
8
|
+
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
|
9
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
10
|
+
import com.smileidentity.SmileID
|
|
11
|
+
import com.smileidentity.compose.ConsentScreen
|
|
12
|
+
import java.net.URL
|
|
13
|
+
|
|
14
|
+
class SmileIDConsentView(context: ReactApplicationContext) : SmileIDView(context) {
|
|
15
|
+
var partnerName : String? = null
|
|
16
|
+
var partnerPrivacyPolicy : String? = null
|
|
17
|
+
var logoResName : String? = null
|
|
18
|
+
var productName : String? = null
|
|
19
|
+
override fun renderContent() {
|
|
20
|
+
partnerName ?: run {
|
|
21
|
+
emitFailure(IllegalArgumentException("partnerName is required for BiometricKYC"))
|
|
22
|
+
return
|
|
23
|
+
}
|
|
24
|
+
partnerPrivacyPolicy?: run {
|
|
25
|
+
emitFailure(IllegalArgumentException("partnerPrivacyPolicy is required for BiometricKYC"))
|
|
26
|
+
return
|
|
27
|
+
}
|
|
28
|
+
if (!URLUtil.isValidUrl(partnerPrivacyPolicy)) {
|
|
29
|
+
emitFailure(IllegalArgumentException("a valid url for partnerPrivacyPolicy is required for BiometricKYC"))
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
logoResName ?: run {
|
|
33
|
+
emitFailure(IllegalArgumentException("partnerIcon is required for BiometricKYC"))
|
|
34
|
+
return
|
|
35
|
+
}
|
|
36
|
+
productName ?: run {
|
|
37
|
+
emitFailure(IllegalArgumentException("productName is required for BiometricKYC"))
|
|
38
|
+
return
|
|
39
|
+
}
|
|
40
|
+
val partnerIcon = context.resources.getIdentifier(
|
|
41
|
+
logoResName,
|
|
42
|
+
"drawable",
|
|
43
|
+
(context as? ReactApplicationContext)?.currentActivity?.packageName
|
|
44
|
+
)
|
|
45
|
+
composeView.apply {
|
|
46
|
+
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
|
|
47
|
+
setContent {
|
|
48
|
+
CompositionLocalProvider(LocalViewModelStoreOwner provides (context as ViewModelStoreOwner)) {
|
|
49
|
+
SmileID.ConsentScreen(
|
|
50
|
+
partnerIcon = painterResource(
|
|
51
|
+
id = partnerIcon
|
|
52
|
+
),
|
|
53
|
+
partnerName = partnerName!!,
|
|
54
|
+
productName = productName!!,
|
|
55
|
+
partnerPrivacyPolicy = URL(partnerPrivacyPolicy),
|
|
56
|
+
onConsentDenied = {
|
|
57
|
+
emitSuccess("denied")
|
|
58
|
+
},
|
|
59
|
+
onConsentGranted = {
|
|
60
|
+
emitSuccess("accepted")
|
|
61
|
+
},
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerificationView.kt
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
package com.smileidentity.react.views
|
|
2
|
+
|
|
3
|
+
import androidx.compose.runtime.CompositionLocalProvider
|
|
4
|
+
import androidx.compose.runtime.saveable.rememberSaveable
|
|
5
|
+
import androidx.compose.ui.platform.ViewCompositionStrategy
|
|
6
|
+
import androidx.lifecycle.ViewModelStoreOwner
|
|
7
|
+
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
|
8
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
9
|
+
import com.smileidentity.SmileID
|
|
10
|
+
import com.smileidentity.compose.DocumentVerification
|
|
11
|
+
import com.smileidentity.results.DocumentVerificationResult
|
|
12
|
+
import com.smileidentity.results.SmileIDResult
|
|
13
|
+
import com.smileidentity.util.randomJobId
|
|
14
|
+
import com.smileidentity.util.randomUserId
|
|
15
|
+
import kotlinx.collections.immutable.toImmutableMap
|
|
16
|
+
import timber.log.Timber
|
|
17
|
+
import java.io.File
|
|
18
|
+
|
|
19
|
+
class SmileIDDocumentVerificationView(context: ReactApplicationContext) : SmileIDView(context) {
|
|
20
|
+
var countryCode: String? = null
|
|
21
|
+
var allowGalleryUpload: Boolean = false
|
|
22
|
+
var captureBothSides: Boolean = true
|
|
23
|
+
var bypassSelfieCaptureWithFilePath: String? = null
|
|
24
|
+
var documentType: String? = null
|
|
25
|
+
var idAspectRatio: Float? = null
|
|
26
|
+
|
|
27
|
+
override fun renderContent() {
|
|
28
|
+
countryCode ?: run {
|
|
29
|
+
emitFailure(IllegalArgumentException("countryCode is required for DocumentVerification"))
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
var bypassSelfieCaptureWithFile: File? = null
|
|
33
|
+
bypassSelfieCaptureWithFilePath?.let {
|
|
34
|
+
bypassSelfieCaptureWithFile = File(it)
|
|
35
|
+
}
|
|
36
|
+
composeView.apply {
|
|
37
|
+
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
|
|
38
|
+
setContent {
|
|
39
|
+
CompositionLocalProvider(LocalViewModelStoreOwner provides (context as ViewModelStoreOwner)) {
|
|
40
|
+
SmileID.DocumentVerification(
|
|
41
|
+
userId = userId ?: rememberSaveable { randomUserId() },
|
|
42
|
+
jobId = jobId ?: rememberSaveable { randomJobId() },
|
|
43
|
+
countryCode = countryCode!!,
|
|
44
|
+
documentType = documentType,
|
|
45
|
+
idAspectRatio = idAspectRatio,
|
|
46
|
+
showAttribution = showAttribution ?: true,
|
|
47
|
+
showInstructions = showInstructions ?: true,
|
|
48
|
+
allowGalleryUpload = allowGalleryUpload,
|
|
49
|
+
captureBothSides = captureBothSides,
|
|
50
|
+
allowNewEnroll = allowNewEnroll ?: false,
|
|
51
|
+
bypassSelfieCaptureWithFile = bypassSelfieCaptureWithFile,
|
|
52
|
+
extraPartnerParams = (extraPartnerParams ?: mapOf()).toImmutableMap(),
|
|
53
|
+
) { result ->
|
|
54
|
+
when (result) {
|
|
55
|
+
is SmileIDResult.Success -> {
|
|
56
|
+
val json = try {
|
|
57
|
+
SmileID.moshi
|
|
58
|
+
.adapter(DocumentVerificationResult::class.java)
|
|
59
|
+
.toJson(result.data)
|
|
60
|
+
} catch (e: Exception) {
|
|
61
|
+
Timber.w(e)
|
|
62
|
+
"null"
|
|
63
|
+
}
|
|
64
|
+
emitSuccess(json)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
is SmileIDResult.Error -> {
|
|
68
|
+
result.throwable.printStackTrace()
|
|
69
|
+
emitFailure(result.throwable)
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
package com.smileidentity.react.views
|
|
2
|
+
|
|
3
|
+
import androidx.compose.runtime.CompositionLocalProvider
|
|
4
|
+
import androidx.compose.runtime.saveable.rememberSaveable
|
|
5
|
+
import androidx.compose.ui.platform.ViewCompositionStrategy
|
|
6
|
+
import androidx.lifecycle.ViewModelStoreOwner
|
|
7
|
+
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
|
8
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
9
|
+
import com.smileidentity.SmileID
|
|
10
|
+
import com.smileidentity.compose.EnhancedDocumentVerificationScreen
|
|
11
|
+
import com.smileidentity.results.EnhancedDocumentVerificationResult
|
|
12
|
+
import com.smileidentity.results.SmileIDResult
|
|
13
|
+
import com.smileidentity.util.randomJobId
|
|
14
|
+
import com.smileidentity.util.randomUserId
|
|
15
|
+
import kotlinx.collections.immutable.toImmutableMap
|
|
16
|
+
import timber.log.Timber
|
|
17
|
+
|
|
18
|
+
class SmileIDEnhancedDocumentVerificationView(context: ReactApplicationContext) :
|
|
19
|
+
SmileIDView(context) {
|
|
20
|
+
var countryCode: String? = null
|
|
21
|
+
var allowGalleryUpload: Boolean = false
|
|
22
|
+
var captureBothSides: Boolean = true
|
|
23
|
+
var documentType: String? = null
|
|
24
|
+
var idAspectRatio: Float? = null
|
|
25
|
+
|
|
26
|
+
override fun renderContent() {
|
|
27
|
+
countryCode ?: run {
|
|
28
|
+
emitFailure(IllegalArgumentException("countryCode is required for DocumentVerification"))
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
composeView.apply {
|
|
32
|
+
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
|
|
33
|
+
setContent {
|
|
34
|
+
CompositionLocalProvider(LocalViewModelStoreOwner provides (context as ViewModelStoreOwner)) {
|
|
35
|
+
SmileID.EnhancedDocumentVerificationScreen(
|
|
36
|
+
userId = userId ?: rememberSaveable { randomUserId() },
|
|
37
|
+
jobId = jobId ?: rememberSaveable { randomJobId() },
|
|
38
|
+
countryCode = countryCode!!,
|
|
39
|
+
documentType = documentType,
|
|
40
|
+
idAspectRatio = idAspectRatio,
|
|
41
|
+
showAttribution = showAttribution ?: true,
|
|
42
|
+
showInstructions = showInstructions ?: true,
|
|
43
|
+
allowNewEnroll = allowNewEnroll ?: false,
|
|
44
|
+
allowGalleryUpload = allowGalleryUpload,
|
|
45
|
+
captureBothSides = captureBothSides,
|
|
46
|
+
extraPartnerParams = (extraPartnerParams ?: mapOf()).toImmutableMap(),
|
|
47
|
+
) { result ->
|
|
48
|
+
when (result) {
|
|
49
|
+
is SmileIDResult.Success -> {
|
|
50
|
+
val json = try {
|
|
51
|
+
SmileID.moshi
|
|
52
|
+
.adapter(EnhancedDocumentVerificationResult::class.java)
|
|
53
|
+
.toJson(result.data)
|
|
54
|
+
} catch (e: Exception) {
|
|
55
|
+
Timber.w(e)
|
|
56
|
+
"null"
|
|
57
|
+
}
|
|
58
|
+
emitSuccess(json)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
is SmileIDResult.Error -> {
|
|
62
|
+
result.throwable.printStackTrace()
|
|
63
|
+
emitFailure(result.throwable)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
package com.smileidentity.react.views
|
|
2
2
|
|
|
3
|
+
import androidx.compose.runtime.CompositionLocalProvider
|
|
3
4
|
import androidx.compose.runtime.saveable.rememberSaveable
|
|
5
|
+
import androidx.compose.ui.platform.ViewCompositionStrategy
|
|
6
|
+
import androidx.lifecycle.ViewModelStoreOwner
|
|
7
|
+
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
|
4
8
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
9
|
import com.smileidentity.SmileID
|
|
6
10
|
import com.smileidentity.compose.SmartSelfieAuthentication
|
|
@@ -8,18 +12,25 @@ import com.smileidentity.results.SmartSelfieResult
|
|
|
8
12
|
import com.smileidentity.results.SmileIDResult
|
|
9
13
|
import com.smileidentity.util.randomJobId
|
|
10
14
|
import com.smileidentity.util.randomUserId
|
|
15
|
+
import kotlinx.collections.immutable.toImmutableMap
|
|
11
16
|
import timber.log.Timber
|
|
12
17
|
|
|
13
|
-
class
|
|
18
|
+
class SmileIDSmartSelfieAuthenticationView(context: ReactApplicationContext) :
|
|
19
|
+
SmileIDView(context) {
|
|
14
20
|
|
|
15
21
|
override fun renderContent() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
composeView.apply {
|
|
23
|
+
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
|
|
24
|
+
setContent {
|
|
25
|
+
CompositionLocalProvider(LocalViewModelStoreOwner provides (context as ViewModelStoreOwner)) {
|
|
19
26
|
SmileID.SmartSelfieAuthentication(
|
|
20
27
|
userId = userId ?: rememberSaveable { randomUserId() },
|
|
21
28
|
jobId = jobId ?: rememberSaveable { randomJobId() },
|
|
22
29
|
allowAgentMode = allowAgentMode ?: false,
|
|
30
|
+
allowNewEnroll = allowNewEnroll ?: false,
|
|
31
|
+
showAttribution = showAttribution ?: true,
|
|
32
|
+
showInstructions = showInstructions ?: true,
|
|
33
|
+
extraPartnerParams = (extraPartnerParams ?: mapOf()).toImmutableMap(),
|
|
23
34
|
) { result ->
|
|
24
35
|
when (result) {
|
|
25
36
|
is SmileIDResult.Success -> {
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
package com.smileidentity.react.views
|
|
2
2
|
|
|
3
|
+
import androidx.compose.runtime.CompositionLocalProvider
|
|
3
4
|
import androidx.compose.runtime.saveable.rememberSaveable
|
|
5
|
+
import androidx.compose.ui.platform.ViewCompositionStrategy
|
|
6
|
+
import androidx.lifecycle.ViewModelStoreOwner
|
|
7
|
+
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
|
4
8
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
9
|
import com.smileidentity.SmileID
|
|
6
10
|
import com.smileidentity.compose.SmartSelfieEnrollment
|
|
@@ -8,19 +12,24 @@ import com.smileidentity.results.SmartSelfieResult
|
|
|
8
12
|
import com.smileidentity.results.SmileIDResult
|
|
9
13
|
import com.smileidentity.util.randomJobId
|
|
10
14
|
import com.smileidentity.util.randomUserId
|
|
15
|
+
import kotlinx.collections.immutable.toImmutableMap
|
|
11
16
|
import timber.log.Timber
|
|
12
17
|
|
|
13
|
-
class
|
|
18
|
+
class SmileIDSmartSelfieEnrollmentView(context: ReactApplicationContext) : SmileIDView(context) {
|
|
14
19
|
|
|
15
20
|
override fun renderContent() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
composeView.apply {
|
|
22
|
+
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
|
|
23
|
+
setContent {
|
|
24
|
+
CompositionLocalProvider(LocalViewModelStoreOwner provides (context as ViewModelStoreOwner)) {
|
|
19
25
|
SmileID.SmartSelfieEnrollment(
|
|
20
26
|
userId = userId ?: rememberSaveable { randomUserId() },
|
|
21
27
|
jobId = jobId ?: rememberSaveable { randomJobId() },
|
|
22
28
|
allowAgentMode = allowAgentMode ?: false,
|
|
23
|
-
|
|
29
|
+
allowNewEnroll = allowNewEnroll ?: false,
|
|
30
|
+
showAttribution = showAttribution ?: true,
|
|
31
|
+
showInstructions = showInstructions ?: true,
|
|
32
|
+
extraPartnerParams = (extraPartnerParams ?: mapOf()).toImmutableMap(),
|
|
24
33
|
) { result ->
|
|
25
34
|
when (result) {
|
|
26
35
|
is SmileIDResult.Success -> {
|