@smile_identity/react-native 10.2.2 → 10.2.4-beta.1

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 (159) hide show
  1. package/README.md +4 -28
  2. package/android/build.gradle +4 -1
  3. package/android/gradle.properties +3 -3
  4. package/android/src/main/java/com/smileidentity/react/Mapper.kt +21 -5
  5. package/android/src/main/java/com/smileidentity/react/SmileIdModule.kt +37 -39
  6. package/android/src/main/java/com/smileidentity/react/SmileIdPackage.kt +4 -0
  7. package/android/src/main/java/com/smileidentity/react/fragments/SmileCaptureFragment.kt +56 -0
  8. package/android/src/main/java/com/smileidentity/react/results/BiometricKycCaptureResult.kt +9 -0
  9. package/android/src/main/java/com/smileidentity/react/results/SmartSelfieCaptureResult.kt +3 -2
  10. package/android/src/main/java/com/smileidentity/react/utils/BiometricKycCaptureResultAdapter.kt +69 -0
  11. package/android/src/main/java/com/smileidentity/react/utils/ReactUtils.kt +16 -0
  12. package/android/src/main/java/com/smileidentity/react/utils/SelfieCaptureResultAdapter.kt +0 -2
  13. package/android/src/main/java/com/smileidentity/react/viewmanagers/BaseSmileIDViewManager.kt +130 -0
  14. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBiometricKYCViewManager.kt +22 -46
  15. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDConsentViewManager.kt +27 -52
  16. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentCaptureViewManager.kt +15 -40
  17. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentVerificationViewManager.kt +23 -49
  18. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDEnhancedDocumentVerificationViewManager.kt +28 -47
  19. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationEnhancedViewManager.kt +39 -0
  20. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationViewManager.kt +16 -40
  21. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieCaptureViewManager.kt +15 -38
  22. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentEnhancedViewManager.kt +39 -0
  23. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentViewManager.kt +15 -44
  24. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYCView.kt +14 -7
  25. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentCaptureView.kt +9 -0
  26. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerificationView.kt +2 -4
  27. package/android/src/main/java/com/smileidentity/react/views/SmileIDEnhancedDocumentVerificationView.kt +11 -5
  28. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieAuthenticationEnhancedView.kt +61 -0
  29. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieAuthenticationView.kt +0 -2
  30. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieCaptureView.kt +38 -25
  31. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollmentEnhancedView.kt +68 -0
  32. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollmentView.kt +35 -30
  33. package/android/src/main/java/com/smileidentity/react/views/SmileIDView.kt +11 -10
  34. package/android/src/main/res/values/colors.xml +14 -0
  35. package/android/src/main/res/values/strings.xml +91 -0
  36. package/android/src/oldarch/SmileIdSpec.kt +3 -12
  37. package/ios/RNSmileID.mm +6 -3
  38. package/ios/RNSmileID.swift +470 -477
  39. package/ios/View/SmileIDSmartSelfieAuthEnhancedView.swift +44 -0
  40. package/ios/View/SmileIDSmartSelfieAuthView.swift +2 -3
  41. package/ios/View/SmileIDSmartSelfieCaptureView.swift +2 -2
  42. package/ios/View/SmileIDSmartSelfieEnrollmentEnhancedView.swift +44 -0
  43. package/ios/ViewManagers/SmileIDBaseViewManager.swift +24 -20
  44. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.m +4 -1
  45. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.swift +24 -24
  46. package/ios/ViewManagers/SmileIDConsentViewManager.m +4 -1
  47. package/ios/ViewManagers/SmileIDConsentViewManager.swift +1 -1
  48. package/ios/ViewManagers/SmileIDDocumentCaptureViewManager.m +4 -1
  49. package/ios/ViewManagers/SmileIDDocumentCaptureViewManager.swift +1 -1
  50. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.m +4 -1
  51. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.swift +1 -1
  52. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.m +4 -1
  53. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.swift +1 -1
  54. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationEnhancedViewManager.m +10 -0
  55. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationEnhancedViewManager.swift +25 -0
  56. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.m +4 -1
  57. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.swift +1 -1
  58. package/ios/ViewManagers/SmileIDSmartSelfieCaptureViewManager.m +4 -1
  59. package/ios/ViewManagers/SmileIDSmartSelfieCaptureViewManager.swift +1 -1
  60. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentEnhancedViewManager.m +10 -0
  61. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentEnhancedViewManager.swift +25 -0
  62. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.m +4 -1
  63. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.swift +1 -1
  64. package/lib/commonjs/NativeSmileId.js.map +1 -1
  65. package/lib/commonjs/SmileIDBiometricKYCView.js +18 -29
  66. package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -1
  67. package/lib/commonjs/SmileIDConsentView.js +9 -29
  68. package/lib/commonjs/SmileIDConsentView.js.map +1 -1
  69. package/lib/commonjs/SmileIDDocumentCaptureView.js +9 -29
  70. package/lib/commonjs/SmileIDDocumentCaptureView.js.map +1 -1
  71. package/lib/commonjs/SmileIDDocumentVerificationView.js +9 -29
  72. package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -1
  73. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +17 -28
  74. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -1
  75. package/lib/commonjs/SmileIDSmartSelfieAuthenticationEnhancedView.js +20 -0
  76. package/lib/commonjs/SmileIDSmartSelfieAuthenticationEnhancedView.js.map +1 -0
  77. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +9 -29
  78. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -1
  79. package/lib/commonjs/SmileIDSmartSelfieCaptureView.js +9 -29
  80. package/lib/commonjs/SmileIDSmartSelfieCaptureView.js.map +1 -1
  81. package/lib/commonjs/SmileIDSmartSelfieEnrollmentEnhancedView.js +20 -0
  82. package/lib/commonjs/SmileIDSmartSelfieEnrollmentEnhancedView.js.map +1 -0
  83. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +9 -29
  84. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -1
  85. package/lib/commonjs/index.js +26 -2
  86. package/lib/commonjs/index.js.map +1 -1
  87. package/lib/commonjs/types.js.map +1 -1
  88. package/lib/commonjs/useSmileIDView.js +55 -0
  89. package/lib/commonjs/useSmileIDView.js.map +1 -0
  90. package/lib/module/NativeSmileId.js.map +1 -1
  91. package/lib/module/SmileIDBiometricKYCView.js +18 -26
  92. package/lib/module/SmileIDBiometricKYCView.js.map +1 -1
  93. package/lib/module/SmileIDConsentView.js +9 -26
  94. package/lib/module/SmileIDConsentView.js.map +1 -1
  95. package/lib/module/SmileIDDocumentCaptureView.js +9 -26
  96. package/lib/module/SmileIDDocumentCaptureView.js.map +1 -1
  97. package/lib/module/SmileIDDocumentVerificationView.js +9 -26
  98. package/lib/module/SmileIDDocumentVerificationView.js.map +1 -1
  99. package/lib/module/SmileIDEnhancedDocumentVerificationView.js +17 -25
  100. package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -1
  101. package/lib/module/SmileIDSmartSelfieAuthenticationEnhancedView.js +13 -0
  102. package/lib/module/SmileIDSmartSelfieAuthenticationEnhancedView.js.map +1 -0
  103. package/lib/module/SmileIDSmartSelfieAuthenticationView.js +9 -26
  104. package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -1
  105. package/lib/module/SmileIDSmartSelfieCaptureView.js +9 -26
  106. package/lib/module/SmileIDSmartSelfieCaptureView.js.map +1 -1
  107. package/lib/module/SmileIDSmartSelfieEnrollmentEnhancedView.js +13 -0
  108. package/lib/module/SmileIDSmartSelfieEnrollmentEnhancedView.js.map +1 -0
  109. package/lib/module/SmileIDSmartSelfieEnrollmentView.js +9 -26
  110. package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -1
  111. package/lib/module/index.js +10 -4
  112. package/lib/module/index.js.map +1 -1
  113. package/lib/module/types.js.map +1 -1
  114. package/lib/module/useSmileIDView.js +48 -0
  115. package/lib/module/useSmileIDView.js.map +1 -0
  116. package/lib/typescript/NativeSmileId.d.ts +6 -4
  117. package/lib/typescript/NativeSmileId.d.ts.map +1 -1
  118. package/lib/typescript/SmileIDBiometricKYCView.d.ts +3 -6
  119. package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +1 -1
  120. package/lib/typescript/SmileIDConsentView.d.ts +3 -6
  121. package/lib/typescript/SmileIDConsentView.d.ts.map +1 -1
  122. package/lib/typescript/SmileIDDocumentCaptureView.d.ts +4 -7
  123. package/lib/typescript/SmileIDDocumentCaptureView.d.ts.map +1 -1
  124. package/lib/typescript/SmileIDDocumentVerificationView.d.ts +3 -6
  125. package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +1 -1
  126. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts +3 -6
  127. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -1
  128. package/lib/typescript/SmileIDSmartSelfieAuthenticationEnhancedView.d.ts +5 -0
  129. package/lib/typescript/SmileIDSmartSelfieAuthenticationEnhancedView.d.ts.map +1 -0
  130. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts +3 -6
  131. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -1
  132. package/lib/typescript/SmileIDSmartSelfieCaptureView.d.ts +3 -6
  133. package/lib/typescript/SmileIDSmartSelfieCaptureView.d.ts.map +1 -1
  134. package/lib/typescript/SmileIDSmartSelfieEnrollmentEnhancedView.d.ts +5 -0
  135. package/lib/typescript/SmileIDSmartSelfieEnrollmentEnhancedView.d.ts.map +1 -0
  136. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts +3 -6
  137. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -1
  138. package/lib/typescript/index.d.ts +12 -6
  139. package/lib/typescript/index.d.ts.map +1 -1
  140. package/lib/typescript/types.d.ts +2 -0
  141. package/lib/typescript/types.d.ts.map +1 -1
  142. package/lib/typescript/useSmileIDView.d.ts +12 -0
  143. package/lib/typescript/useSmileIDView.d.ts.map +1 -0
  144. package/package.json +1 -1
  145. package/react-native-smile-id.podspec +1 -1
  146. package/src/NativeSmileId.ts +10 -14
  147. package/src/SmileIDBiometricKYCView.tsx +14 -30
  148. package/src/SmileIDConsentView.tsx +7 -30
  149. package/src/SmileIDDocumentCaptureView.tsx +12 -36
  150. package/src/SmileIDDocumentVerificationView.tsx +9 -36
  151. package/src/SmileIDEnhancedDocumentVerificationView.tsx +23 -35
  152. package/src/SmileIDSmartSelfieAuthenticationEnhancedView.tsx +28 -0
  153. package/src/SmileIDSmartSelfieAuthenticationView.tsx +10 -37
  154. package/src/SmileIDSmartSelfieCaptureView.tsx +9 -33
  155. package/src/SmileIDSmartSelfieEnrollmentEnhancedView.tsx +25 -0
  156. package/src/SmileIDSmartSelfieEnrollmentView.tsx +10 -37
  157. package/src/index.tsx +21 -2
  158. package/src/types.ts +8 -0
  159. package/src/useSmileIDView.tsx +80 -0
@@ -2,62 +2,39 @@ package com.smileidentity.react.viewmanagers
2
2
 
3
3
  import com.facebook.react.bridge.ReactApplicationContext
4
4
  import com.facebook.react.bridge.ReadableArray
5
+ import com.facebook.react.bridge.ReadableMap
5
6
  import com.facebook.react.module.annotations.ReactModule
6
7
  import com.facebook.react.uimanager.SimpleViewManager
7
8
  import com.facebook.react.uimanager.ThemedReactContext
8
9
  import com.smileidentity.react.utils.getBoolOrDefault
9
10
  import com.smileidentity.react.utils.getStringOrDefault
10
11
  import com.smileidentity.react.views.SmileIDSmartSelfieCaptureView
12
+ import com.smileidentity.react.views.SmileIDSmartSelfieEnrollmentEnhancedView
13
+ import com.smileidentity.react.views.SmileIDView
11
14
 
12
15
  @ReactModule(name = SmileIDSmartSelfieCaptureViewManager.NAME)
13
16
  class SmileIDSmartSelfieCaptureViewManager(
14
17
  private val reactApplicationContext: ReactApplicationContext
15
- ) : SimpleViewManager<SmileIDSmartSelfieCaptureView>() {
18
+ ) : BaseSmileIDViewManager<SmileIDSmartSelfieCaptureView>(reactApplicationContext) {
16
19
  override fun getName(): String = NAME
17
20
 
18
- override fun getExportedCustomBubblingEventTypeConstants(): Map<String, Any> {
19
- return mapOf(
20
- "onSmileResult" to mapOf(
21
- "phasedRegistrationNames" to mapOf(
22
- "bubbled" to "onResult"
23
- )
24
- )
25
- )
26
- }
27
-
28
- override fun getCommandsMap(): Map<String, Int> {
29
- return mapOf("setParams" to COMMAND_SET_PARAMS)
21
+ override fun createSmileView(): SmileIDSmartSelfieCaptureView {
22
+ return SmileIDSmartSelfieCaptureView(reactApplicationContext)
30
23
  }
31
24
 
32
- override fun receiveCommand(
33
- view: SmileIDSmartSelfieCaptureView,
34
- commandId: String?,
35
- args: ReadableArray?
36
- ) {
37
- super.receiveCommand(view, commandId, args)
38
- when (commandId?.toInt()) {
39
- COMMAND_SET_PARAMS -> {
40
- // Extract params from args and apply to view
41
- val params = args?.getMap(0)
42
- params?.let {
43
- view.userId = params.getStringOrDefault("userId")
44
- view.jobId = params.getStringOrDefault("jobId")
45
- view.allowAgentMode = params.getBoolOrDefault("allowAgentMode", false)
46
- view.showAttribution = params.getBoolOrDefault("showAttribution", true)
47
- view.showInstructions = params.getBoolOrDefault("showInstructions", true)
48
- view.showConfirmation = params.getBoolOrDefault("showConfirmation", true)
49
- view.renderContent()
50
- }
51
- }
25
+ override fun applyArgs(view: SmileIDSmartSelfieCaptureView, args: ReadableMap?) {
26
+ args?.let {
27
+ view.userId = it.getStringOrDefault("userId")
28
+ view.jobId = it.getStringOrDefault("jobId")
29
+ view.allowAgentMode = it.getBoolOrDefault("allowAgentMode", false)
30
+ view.showAttribution = it.getBoolOrDefault("showAttribution", true)
31
+ view.showInstructions = it.getBoolOrDefault("showInstructions", true)
32
+ view.showConfirmation =
33
+ it.getBoolOrDefault("showConfirmation", true)
52
34
  }
53
35
  }
54
36
 
55
- override fun createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieCaptureView {
56
- return SmileIDSmartSelfieCaptureView(reactApplicationContext)
57
- }
58
-
59
37
  companion object {
60
38
  const val NAME = "SmileIDSmartSelfieCaptureView"
61
- const val COMMAND_SET_PARAMS = 1
62
39
  }
63
40
  }
@@ -0,0 +1,39 @@
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.bridge.ReadableMap
6
+ import com.facebook.react.module.annotations.ReactModule
7
+ import com.facebook.react.uimanager.SimpleViewManager
8
+ import com.facebook.react.uimanager.ThemedReactContext
9
+ import com.smileidentity.react.utils.getBoolOrDefault
10
+ import com.smileidentity.react.utils.getImmutableMapOrDefault
11
+ import com.smileidentity.react.utils.getStringOrDefault
12
+ import com.smileidentity.react.views.SmileIDSmartSelfieEnrollmentEnhancedView
13
+ import com.smileidentity.react.views.SmileIDSmartSelfieEnrollmentView
14
+ import com.smileidentity.react.views.SmileIDView
15
+
16
+ @ReactModule(name = SmileIDSmartSelfieEnrollmentEnhancedViewManager.NAME)
17
+ class SmileIDSmartSelfieEnrollmentEnhancedViewManager(
18
+ private val reactApplicationContext: ReactApplicationContext
19
+ ) : BaseSmileIDViewManager<SmileIDSmartSelfieEnrollmentEnhancedView>(reactApplicationContext) {
20
+
21
+ override fun getName(): String = NAME
22
+ override fun createSmileView(): SmileIDSmartSelfieEnrollmentEnhancedView {
23
+ return SmileIDSmartSelfieEnrollmentEnhancedView(reactApplicationContext)
24
+ }
25
+
26
+ override fun applyArgs(view: SmileIDSmartSelfieEnrollmentEnhancedView, args: ReadableMap?) {
27
+ args?.let {
28
+ view.extraPartnerParams = it.getImmutableMapOrDefault("extraPartnerParams")
29
+ view.userId = it.getStringOrDefault("userId")
30
+ view.showAttribution = it.getBoolOrDefault("showAttribution", true)
31
+ view.showInstructions = it.getBoolOrDefault("showInstructions", true)
32
+ view.allowNewEnroll = it.getBoolOrDefault("allowNewEnroll", false)
33
+ }
34
+ }
35
+
36
+ companion object {
37
+ const val NAME = "SmileIDSmartSelfieEnrollmentEnhancedView"
38
+ }
39
+ }
@@ -1,67 +1,38 @@
1
1
  package com.smileidentity.react.viewmanagers
2
2
 
3
3
  import com.facebook.react.bridge.ReactApplicationContext
4
- import com.facebook.react.bridge.ReadableArray
4
+ import com.facebook.react.bridge.ReadableMap
5
5
  import com.facebook.react.module.annotations.ReactModule
6
- import com.facebook.react.uimanager.SimpleViewManager
7
- import com.facebook.react.uimanager.ThemedReactContext
8
6
  import com.smileidentity.react.utils.getBoolOrDefault
9
7
  import com.smileidentity.react.utils.getImmutableMapOrDefault
10
8
  import com.smileidentity.react.utils.getStringOrDefault
11
9
  import com.smileidentity.react.views.SmileIDSmartSelfieEnrollmentView
10
+ import com.smileidentity.react.views.SmileIDView
12
11
 
13
12
  @ReactModule(name = SmileIDSmartSelfieEnrollmentViewManager.NAME)
14
13
  class SmileIDSmartSelfieEnrollmentViewManager(
15
14
  private val reactApplicationContext: ReactApplicationContext
16
- ) : SimpleViewManager<SmileIDSmartSelfieEnrollmentView>() {
17
-
15
+ ) : BaseSmileIDViewManager<SmileIDSmartSelfieEnrollmentView>(reactApplicationContext) {
18
16
  override fun getName(): String = NAME
19
17
 
20
- override fun getExportedCustomBubblingEventTypeConstants(): Map<String, Any> {
21
- return mapOf(
22
- "onSmileResult" to mapOf(
23
- "phasedRegistrationNames" to mapOf(
24
- "bubbled" to "onResult"
25
- )
26
- )
27
- )
28
- }
29
-
30
- override fun getCommandsMap(): Map<String, Int> {
31
- return mapOf("setParams" to COMMAND_SET_PARAMS)
18
+ override fun createSmileView(): SmileIDSmartSelfieEnrollmentView {
19
+ return SmileIDSmartSelfieEnrollmentView(reactApplicationContext)
32
20
  }
33
21
 
34
- override fun receiveCommand(
35
- view: SmileIDSmartSelfieEnrollmentView,
36
- commandId: String?,
37
- args: ReadableArray?
38
- ) {
39
- super.receiveCommand(view, commandId, args)
40
- when (commandId?.toInt()) {
41
- COMMAND_SET_PARAMS -> {
42
- // Extract params from args and apply to view
43
- val params = args?.getMap(0)
44
- params?.let {
45
- view.extraPartnerParams = params.getImmutableMapOrDefault("extraPartnerParams")
46
- view.userId = params.getStringOrDefault("userId")
47
- view.jobId = params.getStringOrDefault("jobId")
48
- view.allowAgentMode = params.getBoolOrDefault("allowAgentMode", false)
49
- view.showAttribution = params.getBoolOrDefault("showAttribution", true)
50
- view.showInstructions = params.getBoolOrDefault("showInstructions", true)
51
- view.allowNewEnroll = params.getBoolOrDefault("allowNewEnroll", false)
52
- view.skipApiSubmission = params.getBoolOrDefault("skipApiSubmission", false)
53
- view.renderContent()
54
- }
55
- }
22
+ override fun applyArgs(view: SmileIDSmartSelfieEnrollmentView, args: ReadableMap?) {
23
+ args?.let {
24
+ view.extraPartnerParams = it.getImmutableMapOrDefault("extraPartnerParams")
25
+ view.userId = it.getStringOrDefault("userId")
26
+ view.jobId = it.getStringOrDefault("jobId")
27
+ view.allowAgentMode = it.getBoolOrDefault("allowAgentMode", false)
28
+ view.showAttribution = it.getBoolOrDefault("showAttribution", true)
29
+ view.showInstructions = it.getBoolOrDefault("showInstructions", true)
30
+ view.allowNewEnroll = it.getBoolOrDefault("allowNewEnroll", false)
31
+ view.skipApiSubmission = it.getBoolOrDefault("skipApiSubmission", false)
56
32
  }
57
33
  }
58
34
 
59
- override fun createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieEnrollmentView {
60
- return SmileIDSmartSelfieEnrollmentView(reactApplicationContext)
61
- }
62
-
63
35
  companion object {
64
36
  const val NAME = "SmileIDSmartSelfieEnrollmentView"
65
- const val COMMAND_SET_PARAMS = 1
66
37
  }
67
38
  }
@@ -6,21 +6,27 @@ import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
6
6
  import com.facebook.react.bridge.ReactApplicationContext
7
7
  import com.smileidentity.SmileID
8
8
  import com.smileidentity.compose.BiometricKYC
9
+ import com.smileidentity.models.ConsentInformation
9
10
  import com.smileidentity.models.IdInfo
10
- import com.smileidentity.react.results.SmartSelfieCaptureResult
11
- import com.smileidentity.react.utils.SelfieCaptureResultAdapter
11
+ import com.smileidentity.react.results.BiometricKycCaptureResult
12
+ import com.smileidentity.react.utils.BiometricKycCaptureResultAdapter
12
13
  import com.smileidentity.results.SmileIDResult
13
14
  import com.smileidentity.util.randomJobId
14
15
  import com.smileidentity.util.randomUserId
15
16
 
16
17
  class SmileIDBiometricKYCView(context: ReactApplicationContext) : SmileIDView(context) {
17
18
  var idInfo: IdInfo? = null
19
+ var consentInformation: ConsentInformation? = null
18
20
 
19
21
  override fun renderContent() {
20
22
  idInfo ?: run {
21
23
  emitFailure(IllegalArgumentException("idInfo is required for BiometricKYC"))
22
24
  return
23
25
  }
26
+ consentInformation ?: run {
27
+ emitFailure(IllegalArgumentException("consentInformation is required for BiometricKYC"))
28
+ return
29
+ }
24
30
  composeView.apply {
25
31
  val customViewModelStoreOwner = CustomViewModelStoreOwner()
26
32
  setContent {
@@ -31,14 +37,15 @@ class SmileIDBiometricKYCView(context: ReactApplicationContext) : SmileIDView(co
31
37
  jobId = jobId ?: rememberSaveable { randomJobId() },
32
38
  allowAgentMode = allowAgentMode ?: false,
33
39
  allowNewEnroll = allowNewEnroll ?: false,
34
- showAttribution = showAttribution ?: true,
35
- showInstructions = showInstructions ?: true,
40
+ showAttribution = showAttribution,
41
+ showInstructions = showInstructions,
36
42
  extraPartnerParams = extraPartnerParams,
43
+ consentInformation = consentInformation!!,
37
44
  ) { res ->
38
45
  when (res) {
39
46
  is SmileIDResult.Success -> {
40
47
  val result =
41
- SmartSelfieCaptureResult(
48
+ BiometricKycCaptureResult(
42
49
  selfieFile = res.data.selfieFile,
43
50
  livenessFiles = res.data.livenessFiles,
44
51
  didSubmitBiometricKycJob = res.data.didSubmitBiometricKycJob,
@@ -46,12 +53,12 @@ class SmileIDBiometricKYCView(context: ReactApplicationContext) : SmileIDView(co
46
53
  val newMoshi =
47
54
  SmileID.moshi
48
55
  .newBuilder()
49
- .add(SelfieCaptureResultAdapter.FACTORY)
56
+ .add(BiometricKycCaptureResultAdapter.FACTORY)
50
57
  .build()
51
58
  val json =
52
59
  try {
53
60
  newMoshi
54
- .adapter(SmartSelfieCaptureResult::class.java)
61
+ .adapter(BiometricKycCaptureResult::class.java)
55
62
  .toJson(result)
56
63
  } catch (e: Exception) {
57
64
  emitFailure(e)
@@ -65,10 +65,19 @@ class SmileIDDocumentCaptureView(context: ReactApplicationContext) : SmileIDView
65
65
  DocumentCaptureScreen(
66
66
  jobId = jobId,
67
67
  side = if (front) DocumentCaptureSide.Front else DocumentCaptureSide.Back,
68
+ showInstructions = showInstructions,
69
+ showAttribution = showAttribution,
70
+ allowGallerySelection = allowGalleryUpload,
71
+ showConfirmation = showConfirmation,
72
+ showSkipButton = false,
73
+ instructionsHeroImage = hero,
74
+ instructionsTitleText = stringResource(instructionTitle),
75
+ instructionsSubtitleText = stringResource(instructionSubTitle),
68
76
  captureTitleText = stringResource(captureTitleText),
69
77
  knownIdAspectRatio = idAspectRatio,
70
78
  onConfirm = { file -> handleConfirmation(file) },
71
79
  onError = { throwable -> emitFailure(throwable) },
80
+ onSkip = { }
72
81
  )
73
82
  }
74
83
 
@@ -11,7 +11,6 @@ import com.smileidentity.react.utils.DocumentCaptureResultAdapter
11
11
  import com.smileidentity.results.SmileIDResult
12
12
  import com.smileidentity.util.randomJobId
13
13
  import com.smileidentity.util.randomUserId
14
- import kotlinx.collections.immutable.toImmutableMap
15
14
  import java.io.File
16
15
 
17
16
  class SmileIDDocumentVerificationView(context: ReactApplicationContext) : SmileIDView(context) {
@@ -41,13 +40,12 @@ class SmileIDDocumentVerificationView(context: ReactApplicationContext) : SmileI
41
40
  countryCode = countryCode!!,
42
41
  documentType = documentType,
43
42
  idAspectRatio = idAspectRatio,
44
- showAttribution = showAttribution ?: true,
43
+ showAttribution = showAttribution,
45
44
  allowAgentMode = allowAgentMode ?: false,
46
- showInstructions = showInstructions ?: true,
45
+ showInstructions = showInstructions,
47
46
  allowGalleryUpload = allowGalleryUpload,
48
47
  captureBothSides = captureBothSides,
49
48
  allowNewEnroll = allowNewEnroll ?: false,
50
- skipApiSubmission = skipApiSubmission,
51
49
  bypassSelfieCaptureWithFile = bypassSelfieCaptureWithFile,
52
50
  extraPartnerParams = extraPartnerParams,
53
51
  ) { res ->
@@ -6,12 +6,12 @@ import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
6
6
  import com.facebook.react.bridge.ReactApplicationContext
7
7
  import com.smileidentity.SmileID
8
8
  import com.smileidentity.compose.EnhancedDocumentVerificationScreen
9
+ import com.smileidentity.models.ConsentInformation
9
10
  import com.smileidentity.react.results.DocumentCaptureResult
10
11
  import com.smileidentity.react.utils.DocumentCaptureResultAdapter
11
12
  import com.smileidentity.results.SmileIDResult
12
13
  import com.smileidentity.util.randomJobId
13
14
  import com.smileidentity.util.randomUserId
14
- import kotlinx.collections.immutable.toImmutableMap
15
15
 
16
16
  class SmileIDEnhancedDocumentVerificationView(context: ReactApplicationContext) :
17
17
  SmileIDView(context) {
@@ -20,11 +20,17 @@ class SmileIDEnhancedDocumentVerificationView(context: ReactApplicationContext)
20
20
  var captureBothSides: Boolean = true
21
21
  var documentType: String? = null
22
22
  var idAspectRatio: Float? = null
23
+ var consentInformation: ConsentInformation? = null
23
24
 
24
25
  override fun renderContent() {
25
26
  countryCode ?: run {
26
27
  emitFailure(IllegalArgumentException("countryCode is required for DocumentVerification"))
27
- return;
28
+ return
29
+ }
30
+
31
+ consentInformation ?: run {
32
+ emitFailure(IllegalArgumentException("consentInformation is required for DocumentVerification"))
33
+ return
28
34
  }
29
35
 
30
36
  composeView.apply {
@@ -37,14 +43,14 @@ class SmileIDEnhancedDocumentVerificationView(context: ReactApplicationContext)
37
43
  countryCode = countryCode!!,
38
44
  documentType = documentType,
39
45
  idAspectRatio = idAspectRatio,
40
- showAttribution = showAttribution ?: true,
46
+ showAttribution = showAttribution,
41
47
  allowAgentMode = allowAgentMode ?: false,
42
- showInstructions = showInstructions ?: true,
48
+ showInstructions = showInstructions,
43
49
  allowNewEnroll = allowNewEnroll ?: false,
44
50
  allowGalleryUpload = allowGalleryUpload,
45
51
  captureBothSides = captureBothSides,
46
- skipApiSubmission = skipApiSubmission,
47
52
  extraPartnerParams = extraPartnerParams,
53
+ consentInformation = consentInformation!!,
48
54
  ) { res ->
49
55
  when (res) {
50
56
  is SmileIDResult.Success -> {
@@ -0,0 +1,61 @@
1
+ package com.smileidentity.react.views
2
+
3
+ import androidx.compose.runtime.CompositionLocalProvider
4
+ import androidx.compose.runtime.saveable.rememberSaveable
5
+ import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
6
+ import com.facebook.react.bridge.ReactApplicationContext
7
+ import com.smileidentity.SmileID
8
+ import com.smileidentity.compose.SmartSelfieAuthenticationEnhanced
9
+ import com.smileidentity.react.results.SmartSelfieCaptureResult
10
+ import com.smileidentity.react.utils.SelfieCaptureResultAdapter
11
+ import com.smileidentity.results.SmileIDResult
12
+ import com.smileidentity.util.randomUserId
13
+
14
+ class SmileIDSmartSelfieAuthenticationEnhancedView(context: ReactApplicationContext) :
15
+ SmileIDView(context) {
16
+
17
+ override fun renderContent() {
18
+ composeView.apply {
19
+ val customViewModelStoreOwner = CustomViewModelStoreOwner()
20
+ setContent {
21
+ CompositionLocalProvider(LocalViewModelStoreOwner provides customViewModelStoreOwner) {
22
+ SmileID.SmartSelfieAuthenticationEnhanced(
23
+ userId = userId ?: rememberSaveable { randomUserId() },
24
+ allowNewEnroll = allowNewEnroll ?: false,
25
+ showAttribution = showAttribution,
26
+ showInstructions = showInstructions,
27
+ extraPartnerParams = extraPartnerParams,
28
+ ) { res ->
29
+ when (res) {
30
+ is SmileIDResult.Success -> {
31
+ val result =
32
+ SmartSelfieCaptureResult(
33
+ selfieFile = res.data.selfieFile,
34
+ livenessFiles = res.data.livenessFiles,
35
+ apiResponse = res.data.apiResponse,
36
+ )
37
+ val json =
38
+ try {
39
+ SmileID.moshi
40
+ .newBuilder()
41
+ .add(SelfieCaptureResultAdapter.FACTORY)
42
+ .build()
43
+ .adapter(SmartSelfieCaptureResult::class.java)
44
+ .toJson(result)
45
+ } catch (e: Exception) {
46
+ emitFailure(e)
47
+ return@SmartSelfieAuthenticationEnhanced
48
+ }
49
+ json?.let { response ->
50
+ emitSuccess(response)
51
+ }
52
+ }
53
+
54
+ is SmileIDResult.Error -> emitFailure(res.throwable)
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
@@ -10,7 +10,6 @@ import com.smileidentity.react.results.SmartSelfieCaptureResult
10
10
  import com.smileidentity.react.utils.SelfieCaptureResultAdapter
11
11
  import com.smileidentity.results.SmileIDResult
12
12
  import com.smileidentity.util.randomUserId
13
- import kotlinx.collections.immutable.toImmutableMap
14
13
 
15
14
  class SmileIDSmartSelfieAuthenticationView(context: ReactApplicationContext) :
16
15
  SmileIDView(context) {
@@ -26,7 +25,6 @@ class SmileIDSmartSelfieAuthenticationView(context: ReactApplicationContext) :
26
25
  allowNewEnroll = allowNewEnroll ?: false,
27
26
  showAttribution = showAttribution,
28
27
  showInstructions = showInstructions,
29
- skipApiSubmission = skipApiSubmission,
30
28
  extraPartnerParams = extraPartnerParams,
31
29
  ) { res ->
32
30
  when (res) {
@@ -175,35 +175,48 @@ class SmileIDSmartSelfieCaptureView(context: ReactApplicationContext) : SmileIDV
175
175
 
176
176
  @Composable
177
177
  private fun HandleProcessingState(viewModel: SelfieViewModel) {
178
- viewModel.onFinished { res ->
179
- when (res) {
180
- is SmileIDResult.Success -> {
181
- val result =
182
- SmartSelfieCaptureResult(
183
- selfieFile = res.data.selfieFile,
184
- livenessFiles = res.data.livenessFiles,
185
- )
186
- val newMoshi =
187
- SmileID.moshi
188
- .newBuilder()
189
- .add(SelfieCaptureResultAdapter.FACTORY)
190
- .build()
191
- val json =
192
- try {
193
- newMoshi
194
- .adapter(SmartSelfieCaptureResult::class.java)
195
- .toJson(result)
196
- } catch (e: Exception) {
197
- emitFailure(e)
198
- return@onFinished
178
+ try {
179
+ viewModel.onFinished { res ->
180
+ when (res) {
181
+ is SmileIDResult.Success -> {
182
+ res.data?.let { data ->
183
+ val result = SmartSelfieCaptureResult(
184
+ selfieFile = data.selfieFile,
185
+ livenessFiles = data.livenessFiles ?: emptyList()
186
+ )
187
+
188
+ try {
189
+ val newMoshi = SmileID.moshi
190
+ .newBuilder()
191
+ .add(SelfieCaptureResultAdapter.FACTORY)
192
+ .build()
193
+
194
+ newMoshi.adapter(SmartSelfieCaptureResult::class.java)
195
+ ?.toJson(result)
196
+ ?.let { js ->
197
+ emitSuccess(js)
198
+ } ?: run {
199
+ emitFailure(Exception("Failed to serialize result"))
200
+ }
201
+ } catch (e: Exception) {
202
+ emitFailure(e)
203
+ }
204
+ } ?: run {
205
+ emitFailure(Exception("No data available in success result"))
199
206
  }
200
- json?.let { js ->
201
- emitSuccess(js)
202
207
  }
203
- }
204
208
 
205
- is SmileIDResult.Error -> emitFailure(res.throwable)
209
+ is SmileIDResult.Error -> {
210
+ emitFailure(res.throwable ?: Exception("Unknown error occurred"))
211
+ }
212
+
213
+ else -> {
214
+ emitFailure(Exception("Unexpected result type"))
215
+ }
216
+ }
206
217
  }
218
+ } catch (e: Exception) {
219
+ // emitFailure(e)
207
220
  }
208
221
  }
209
222
  }
@@ -0,0 +1,68 @@
1
+ package com.smileidentity.react.views
2
+
3
+ import androidx.compose.runtime.CompositionLocalProvider
4
+ import androidx.compose.runtime.saveable.rememberSaveable
5
+ import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
6
+ import com.facebook.react.bridge.ReactApplicationContext
7
+ import com.smileidentity.SmileID
8
+ import com.smileidentity.compose.SmartSelfieEnrollmentEnhanced
9
+ import com.smileidentity.react.results.SmartSelfieCaptureResult
10
+ import com.smileidentity.react.utils.SelfieCaptureResultAdapter
11
+ import com.smileidentity.results.SmileIDResult
12
+ import com.smileidentity.util.randomUserId
13
+ import kotlinx.coroutines.CoroutineScope
14
+ import kotlinx.coroutines.Dispatchers
15
+ import kotlinx.coroutines.Job
16
+ import kotlinx.coroutines.launch
17
+
18
+ class SmileIDSmartSelfieEnrollmentEnhancedView(context: ReactApplicationContext) : SmileIDView(context) {
19
+ private val viewScope = CoroutineScope(Dispatchers.Main + Job())
20
+ override fun renderContent() {
21
+ composeView.apply {
22
+ setContent {
23
+ val customViewModelStoreOwner = CustomViewModelStoreOwner()
24
+ CompositionLocalProvider(LocalViewModelStoreOwner provides customViewModelStoreOwner) {
25
+ SmileID.SmartSelfieEnrollmentEnhanced(
26
+ userId = userId ?: rememberSaveable { randomUserId() },
27
+ allowNewEnroll = allowNewEnroll ?: false,
28
+ showAttribution = showAttribution,
29
+ showInstructions = showInstructions,
30
+ extraPartnerParams = extraPartnerParams,
31
+ ) {res ->
32
+ viewScope.launch {
33
+ when (res) {
34
+ is SmileIDResult.Success -> {
35
+ val result =
36
+ SmartSelfieCaptureResult(
37
+ selfieFile = res.data.selfieFile,
38
+ livenessFiles = res.data.livenessFiles,
39
+ apiResponse = res.data.apiResponse,
40
+ )
41
+ val newMoshi =
42
+ SmileID.moshi
43
+ .newBuilder()
44
+ .add(SelfieCaptureResultAdapter.FACTORY)
45
+ .build()
46
+ val json =
47
+ try {
48
+ newMoshi
49
+ .adapter(SmartSelfieCaptureResult::class.java)
50
+ .toJson(result)
51
+ } catch (e: Exception) {
52
+ emitFailure(e)
53
+ return@launch
54
+ }
55
+ json?.let { js ->
56
+ emitSuccess(js)
57
+ }
58
+ }
59
+
60
+ is SmileIDResult.Error -> emitFailure(res.throwable)
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }