@smile_identity/react-native 10.0.0-beta01 → 10.0.0-beta02

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 (122) hide show
  1. package/android/gradle.properties +1 -1
  2. package/android/src/main/java/com/smileidentity/react/SmileIdModule.kt +59 -9
  3. package/android/src/main/java/com/smileidentity/react/SmileIdPackage.kt +4 -2
  4. package/android/src/main/java/com/smileidentity/react/utils/ReactUtils.kt +16 -10
  5. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBiometricKYCViewManager.kt +38 -9
  6. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDConsentViewManager.kt +77 -0
  7. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentVerificationViewManager.kt +43 -9
  8. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDEnhancedDocumentVerificationViewManager.kt +75 -0
  9. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationViewManager.kt +35 -9
  10. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentViewManager.kt +35 -9
  11. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYCView.kt +54 -0
  12. package/android/src/main/java/com/smileidentity/react/views/SmileIDConsentView.kt +60 -0
  13. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerificationView.kt +69 -0
  14. package/android/src/main/java/com/smileidentity/react/views/SmileIDEnhancedDocumentVerificationView.kt +63 -0
  15. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieAuthenticationView.kt +50 -0
  16. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollmentView.kt +49 -0
  17. package/android/src/main/java/com/smileidentity/react/views/SmileIDView.kt +2 -27
  18. package/android/src/oldarch/SmileIdSpec.kt +4 -1
  19. package/ios/RNDelegates/SmileIDUIViewDelegate.swift +4 -0
  20. package/ios/RNDelegates/SmileIDViewDelegate.swift +5 -0
  21. package/ios/RNSmileID.mm +7 -0
  22. package/ios/RNSmileID.swift +147 -0
  23. package/ios/SmileId.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  24. package/ios/SmileId.xcodeproj/project.xcworkspace/xcuserdata/japhetndhlovu.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  25. package/ios/SmileId.xcodeproj/xcuserdata/japhetndhlovu.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  26. package/ios/Utils/SmileIDDictExt.swift +50 -0
  27. package/ios/Utils/SmileIDUtils.swift +10 -0
  28. package/ios/View/BaseSmileIDView.swift +35 -0
  29. package/ios/View/SmileIDBiometricKYCView.swift +44 -0
  30. package/ios/View/SmileIDConsentView.swift +35 -0
  31. package/ios/View/SmileIDDocumentVerificationView.swift +53 -0
  32. package/ios/View/SmileIDEnhancedDocumentVerificationView.swift +53 -0
  33. package/ios/View/SmileIDSmartSelfieAuthView.swift +39 -0
  34. package/ios/View/SmileIDSmartSelfieEnrollmentView.swift +39 -0
  35. package/ios/ViewManagers/SmileIDBaseViewManager.swift +17 -0
  36. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.m +6 -0
  37. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.swift +33 -0
  38. package/ios/ViewManagers/SmileIDConsentViewManager.m +6 -0
  39. package/ios/ViewManagers/SmileIDConsentViewManager.swift +47 -0
  40. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.m +6 -0
  41. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.swift +48 -0
  42. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.m +6 -0
  43. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.swift +48 -0
  44. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.m +6 -0
  45. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.swift +26 -0
  46. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.m +6 -0
  47. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.swift +26 -0
  48. package/ios/ViewModels/SmileIDProductModel.swift +29 -0
  49. package/ios/react-native-smile-id-Bridging-Header.h +8 -0
  50. package/lib/commonjs/NativeSmileId.js +1 -1
  51. package/lib/commonjs/NativeSmileId.js.map +1 -1
  52. package/lib/commonjs/SmileIDBiometricKYCView.js +40 -0
  53. package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -0
  54. package/lib/commonjs/SmileIDConsentView.js +40 -0
  55. package/lib/commonjs/SmileIDConsentView.js.map +1 -0
  56. package/lib/commonjs/SmileIDDocumentVerificationView.js +40 -0
  57. package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -0
  58. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +40 -0
  59. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
  60. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +40 -0
  61. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
  62. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +40 -0
  63. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
  64. package/lib/commonjs/index.js +98 -27
  65. package/lib/commonjs/index.js.map +1 -1
  66. package/lib/commonjs/types.js +6 -0
  67. package/lib/commonjs/types.js.map +1 -0
  68. package/lib/module/NativeSmileId.js +1 -1
  69. package/lib/module/NativeSmileId.js.map +1 -1
  70. package/lib/module/SmileIDBiometricKYCView.js +30 -0
  71. package/lib/module/SmileIDBiometricKYCView.js.map +1 -0
  72. package/lib/module/SmileIDConsentView.js +30 -0
  73. package/lib/module/SmileIDConsentView.js.map +1 -0
  74. package/lib/module/SmileIDDocumentVerificationView.js +30 -0
  75. package/lib/module/SmileIDDocumentVerificationView.js.map +1 -0
  76. package/lib/module/SmileIDEnhancedDocumentVerificationView.js +30 -0
  77. package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
  78. package/lib/module/SmileIDSmartSelfieAuthenticationView.js +30 -0
  79. package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
  80. package/lib/module/SmileIDSmartSelfieEnrollmentView.js +30 -0
  81. package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
  82. package/lib/module/index.js +33 -21
  83. package/lib/module/index.js.map +1 -1
  84. package/lib/module/types.js +2 -0
  85. package/lib/module/types.js.map +1 -0
  86. package/lib/typescript/NativeSmileId.d.ts +16 -1
  87. package/lib/typescript/NativeSmileId.d.ts.map +1 -1
  88. package/lib/typescript/SmileIDBiometricKYCView.d.ts +8 -0
  89. package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +1 -0
  90. package/lib/typescript/SmileIDConsentView.d.ts +8 -0
  91. package/lib/typescript/SmileIDConsentView.d.ts.map +1 -0
  92. package/lib/typescript/SmileIDDocumentVerificationView.d.ts +8 -0
  93. package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +1 -0
  94. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts +8 -0
  95. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -0
  96. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts +8 -0
  97. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -0
  98. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts +8 -0
  99. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -0
  100. package/lib/typescript/index.d.ts +24 -86
  101. package/lib/typescript/index.d.ts.map +1 -1
  102. package/lib/typescript/types.d.ts +182 -0
  103. package/lib/typescript/types.d.ts.map +1 -0
  104. package/package.json +1 -2
  105. package/react-native-smile-id.podspec +2 -2
  106. package/src/NativeSmileId.ts +17 -5
  107. package/src/SmileIDBiometricKYCView.tsx +45 -0
  108. package/src/SmileIDConsentView.tsx +44 -0
  109. package/src/SmileIDDocumentVerificationView.tsx +51 -0
  110. package/src/SmileIDEnhancedDocumentVerificationView.tsx +51 -0
  111. package/src/SmileIDSmartSelfieAuthenticationView.tsx +51 -0
  112. package/src/SmileIDSmartSelfieEnrollmentView.tsx +51 -0
  113. package/src/index.tsx +54 -122
  114. package/src/types.ts +189 -0
  115. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBVNConsentViewManager.kt +0 -42
  116. package/android/src/main/java/com/smileidentity/react/views/SmileIDBVNConsentScreen.kt +0 -54
  117. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYC.kt +0 -89
  118. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerification.kt +0 -59
  119. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieAuthentication.kt +0 -47
  120. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollment.kt +0 -48
  121. package/ios/SmileId.h +0 -12
  122. package/ios/SmileId.mm +0 -27
@@ -3,4 +3,4 @@ SmileId_minSdkVersion=21
3
3
  SmileId_targetSdkVersion=34
4
4
  SmileId_compileSdkVersion=34
5
5
  SmileId_ndkversion=21.4.7075529
6
- SmileId_androidVersion=10.0.0-beta09
6
+ SmileId_androidVersion=10.0.1
@@ -5,6 +5,7 @@ import com.facebook.react.bridge.ReactApplicationContext
5
5
  import com.facebook.react.bridge.ReactMethod
6
6
  import com.facebook.react.bridge.ReadableMap
7
7
  import com.smileidentity.SmileID
8
+ import com.smileidentity.SmileIDCrashReporting
8
9
  import com.smileidentity.SmileIdSpec
9
10
  import com.smileidentity.models.EnhancedKycRequest
10
11
  import com.smileidentity.react.utils.getStringOrDefault
@@ -23,15 +24,19 @@ class SmileIdModule internal constructor(context: ReactApplicationContext) :
23
24
  }
24
25
 
25
26
  @ReactMethod
26
- override fun initialize(enableCrashReporting: Boolean, useSandBox: Boolean, promise: Promise) {
27
+ override fun initialize(useSandBox: Boolean, promise: Promise) {
27
28
  SmileID.initialize(
28
29
  reactApplicationContext,
29
- enableCrashReporting = enableCrashReporting,
30
30
  useSandbox = useSandBox
31
31
  )
32
32
  promise.resolve(null)
33
33
  }
34
34
 
35
+ @ReactMethod
36
+ override fun disableCrashReporting(promise: Promise) {
37
+ SmileIDCrashReporting.disable()
38
+ }
39
+
35
40
  @ReactMethod
36
41
  override fun doEnhancedKycAsync(product: ReadableMap, promise: Promise) = launch(
37
42
  work = {
@@ -39,24 +44,69 @@ class SmileIdModule internal constructor(context: ReactApplicationContext) :
39
44
  partnerParams ?: run {
40
45
  throw IllegalArgumentException("partnerParams is required for enhanced kyc")
41
46
  }
42
- val country = product.getStringOrDefault("country",null) ?: run {
47
+ val country = product.getStringOrDefault("country", null) ?: run {
43
48
  throw IllegalArgumentException("country is required for enhanced kyc")
44
49
  }
45
- val idType = product.getStringOrDefault("idType",null) ?: run {
50
+ val idType = product.getStringOrDefault("idType", null) ?: run {
46
51
  throw IllegalArgumentException("idType is required for enhanced kyc")
47
52
  }
48
- val idNumber = product.getStringOrDefault("idNumber",null) ?: run {
53
+ val idNumber = product.getStringOrDefault("idNumber", null) ?: run {
49
54
  throw IllegalArgumentException("idNumber is required for enhanced kyc")
50
55
  }
51
56
 
52
- val timestamp = partnerParams?.extras?.get("timestamp") ?: run {
57
+ val timestamp = partnerParams?.extras?.get("timestamp") ?: run {
53
58
  throw IllegalArgumentException("partnerParams.timestamp is required for enhanced kyc")
54
59
  }
55
- val signature = partnerParams?.extras?.get("timestamp") ?: run {
60
+ val signature = partnerParams?.extras?.get("timestamp") ?: run {
56
61
  throw IllegalArgumentException("partnerParams.signature is required for enhanced kyc")
57
62
  }
58
63
  SmileID.api.doEnhancedKycAsync(
59
- EnhancedKycRequest(
64
+ request = EnhancedKycRequest(
65
+ country = country,
66
+ idType = idType,
67
+ idNumber = idNumber,
68
+ firstName = product.getString("firstName"),
69
+ middleName = product.getString("middleName"),
70
+ lastName = product.getString("lastName"),
71
+ dob = product.getString("dob"),
72
+ phoneNumber = product.getString("phoneNumber"),
73
+ bankCode = product.getString("bankCode"),
74
+ callbackUrl = product.getString("callbackUrl"),
75
+ partnerParams = partnerParams,
76
+ sourceSdk = "android (react-native)",
77
+ timestamp = timestamp,
78
+ signature = signature,
79
+ )
80
+ )
81
+ },
82
+ promise = promise
83
+ )
84
+
85
+ @ReactMethod
86
+ override fun doEnhancedKyc(product: ReadableMap, promise: Promise) = launch(
87
+ work = {
88
+ val partnerParams = product.partnerParams()
89
+ partnerParams ?: run {
90
+ throw IllegalArgumentException("partnerParams is required for enhanced kyc")
91
+ }
92
+ val country = product.getStringOrDefault("country", null) ?: run {
93
+ throw IllegalArgumentException("country is required for enhanced kyc")
94
+ }
95
+ val idType = product.getStringOrDefault("idType", null) ?: run {
96
+ throw IllegalArgumentException("idType is required for enhanced kyc")
97
+ }
98
+ val idNumber = product.getStringOrDefault("idNumber", null) ?: run {
99
+ throw IllegalArgumentException("idNumber is required for enhanced kyc")
100
+ }
101
+
102
+ val timestamp = partnerParams?.extras?.get("timestamp") ?: run {
103
+ throw IllegalArgumentException("partnerParams.timestamp is required for enhanced kyc")
104
+ }
105
+ val signature = partnerParams?.extras?.get("timestamp") ?: run {
106
+ throw IllegalArgumentException("partnerParams.signature is required for enhanced kyc")
107
+ }
108
+ SmileID.api.doEnhancedKyc(
109
+ request = EnhancedKycRequest(
60
110
  country = country,
61
111
  idType = idType,
62
112
  idNumber = idNumber,
@@ -92,6 +142,6 @@ class SmileIdModule internal constructor(context: ReactApplicationContext) :
92
142
  }
93
143
 
94
144
  companion object {
95
- const val NAME = "SmileID"
145
+ const val NAME = "RNSmileID"
96
146
  }
97
147
  }
@@ -6,9 +6,10 @@ import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.module.model.ReactModuleInfo
7
7
  import com.facebook.react.module.model.ReactModuleInfoProvider
8
8
  import com.facebook.react.uimanager.ViewManager
9
- import com.smileidentity.react.viewmanagers.SmileIDBVNConsentViewManager
10
9
  import com.smileidentity.react.viewmanagers.SmileIDBiometricKYCViewManager
10
+ import com.smileidentity.react.viewmanagers.SmileIDConsentViewManager
11
11
  import com.smileidentity.react.viewmanagers.SmileIDDocumentVerificationViewManager
12
+ import com.smileidentity.react.viewmanagers.SmileIDEnhancedDocumentVerificationViewManager
12
13
  import com.smileidentity.react.viewmanagers.SmileIDSmartSelfieAuthenticationViewManager
13
14
  import com.smileidentity.react.viewmanagers.SmileIDSmartSelfieEnrollmentViewManager
14
15
 
@@ -18,7 +19,8 @@ class SmileIdPackage : TurboReactPackage() {
18
19
  listOf(SmileIDSmartSelfieEnrollmentViewManager(reactContext),
19
20
  SmileIDSmartSelfieAuthenticationViewManager(reactContext),
20
21
  SmileIDDocumentVerificationViewManager(reactContext),
21
- SmileIDBVNConsentViewManager(reactContext),
22
+ SmileIDEnhancedDocumentVerificationViewManager(reactContext),
23
+ SmileIDConsentViewManager(reactContext),
22
24
  SmileIDBiometricKYCViewManager(reactContext),
23
25
  )
24
26
 
@@ -27,21 +27,20 @@ fun ReadableMap.toMap(): Map<String, String> {
27
27
  }
28
28
 
29
29
  fun ReadableMap.idInfo(): IdInfo? {
30
- val idInfoMap = getMapOrDefault("idInfo", null)
31
- val country = idInfoMap?.getStringOrDefault("country", null) ?: run {
30
+ val country = getStringOrDefault("country", null) ?: run {
32
31
  Timber.e("idInfo.country is required")
33
32
  return null
34
33
  }
35
34
  return IdInfo(
36
35
  country = country,
37
- idType = idInfoMap.getStringOrDefault("idType", null),
38
- idNumber = idInfoMap.getStringOrDefault("idNumber", null),
39
- firstName = idInfoMap.getStringOrDefault("firstName", null),
40
- middleName = idInfoMap.getStringOrDefault("middleName", null),
41
- lastName = idInfoMap.getStringOrDefault("lastName", null),
42
- dob = idInfoMap.getStringOrDefault("dob", null),
43
- bankCode = idInfoMap.getStringOrDefault("bankCode", null),
44
- entered = idInfoMap.getBoolOrDefault("entered", false),
36
+ idType = getStringOrDefault("idType", null),
37
+ idNumber = getStringOrDefault("idNumber", null),
38
+ firstName = getStringOrDefault("firstName", null),
39
+ middleName = getStringOrDefault("middleName", null),
40
+ lastName = getStringOrDefault("lastName", null),
41
+ dob = getStringOrDefault("dob", null),
42
+ bankCode = getStringOrDefault("bankCode", null),
43
+ entered = getBoolOrDefault("entered", false),
45
44
  )
46
45
  }
47
46
 
@@ -69,6 +68,13 @@ fun ReadableMap.getBoolOrDefault(key: String, defaultValue: Boolean): Boolean {
69
68
  return defaultValue
70
69
  }
71
70
 
71
+ fun ReadableMap.getFloatOrDefault(key: String, defaultValue: Float?): Float? {
72
+ if (hasKey(key)) {
73
+ return getDouble(key).toFloat()
74
+ }
75
+ return defaultValue
76
+ }
77
+
72
78
  fun ReadableMap.getStringOrDefault(key: String, defaultValue: String?): String? {
73
79
  if (hasKey(key)) {
74
80
  return getString(key)
@@ -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.ReadableMap
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.facebook.react.uimanager.annotations.ReactProp
9
- import com.smileidentity.react.views.SmileIDBiometricKYC
8
+ import com.smileidentity.react.utils.getBoolOrDefault
9
+ import com.smileidentity.react.utils.getStringOrDefault
10
+ import com.smileidentity.react.utils.idInfo
11
+ import com.smileidentity.react.utils.toMap
12
+ import com.smileidentity.react.views.SmileIDBiometricKYCView
10
13
 
11
14
 
12
15
  @ReactModule(name = SmileIDBiometricKYCViewManager.NAME)
13
16
  class SmileIDBiometricKYCViewManager(private val reactApplicationContext: ReactApplicationContext) :
14
- SimpleViewManager<SmileIDBiometricKYC>() {
17
+ SimpleViewManager<SmileIDBiometricKYCView>() {
15
18
  override fun getName(): String {
16
19
  return NAME
17
20
  }
@@ -26,17 +29,43 @@ class SmileIDBiometricKYCViewManager(private val reactApplicationContext: ReactA
26
29
  )
27
30
  }
28
31
 
29
- @ReactProp(name = "product")
30
- fun setProduct(view: SmileIDBiometricKYC, product: ReadableMap) {
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 createViewInstance(p0: ThemedReactContext): SmileIDBiometricKYC {
35
- return SmileIDBiometricKYC(reactApplicationContext)
36
+ override fun receiveCommand(
37
+ view: SmileIDBiometricKYCView,
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
+ val idInfoMap = params.getMap("idInfo") ?: return view.emitFailure(IllegalArgumentException("idInfo is required to run Biometric KYC"))
48
+ val idInfo = idInfoMap.idInfo() ?: return view.emitFailure(IllegalArgumentException("idInfo is required to run Biometric KYC"))
49
+ view.extraPartnerParams = params.getMap("extraPartnerParams")?.toMap()
50
+ view.userId = params.getStringOrDefault("userId",null)
51
+ view.jobId = params.getStringOrDefault("jobId",null)
52
+ view.idInfo = idInfo
53
+ view.allowAgentMode = params.getBoolOrDefault("allowAgentMode",false)
54
+ view.showAttribution = params.getBoolOrDefault("showAttribution",true)
55
+ view.showInstructions = params.getBoolOrDefault("showInstructions",true)
56
+ view.renderContent()
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ override fun createViewInstance(p0: ThemedReactContext): SmileIDBiometricKYCView {
63
+ return SmileIDBiometricKYCView(reactApplicationContext)
36
64
  }
37
65
 
38
66
  companion object {
39
67
  const val NAME = "SmileIDBiometricKYCView"
68
+ const val COMMAND_SET_PARAMS = 6
40
69
  }
41
70
 
42
71
  }
@@ -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.getMapOrDefault
10
+ import com.smileidentity.react.utils.getStringOrDefault
11
+ import com.smileidentity.react.utils.toMap
12
+ import com.smileidentity.react.views.SmileIDConsentView
13
+
14
+
15
+ @ReactModule(name = SmileIDConsentViewManager.NAME)
16
+ class SmileIDConsentViewManager(private val reactApplicationContext: ReactApplicationContext) :
17
+ SimpleViewManager<SmileIDConsentView>() {
18
+ override fun getName(): String {
19
+ return NAME
20
+ }
21
+
22
+ override fun getExportedCustomBubblingEventTypeConstants(): Map<String, Any> {
23
+ return mapOf(
24
+ "onSmileResult" to mapOf(
25
+ "phasedRegistrationNames" to mapOf(
26
+ "bubbled" to "onResult"
27
+ )
28
+ )
29
+ )
30
+ }
31
+
32
+ override fun getCommandsMap(): Map<String, Int> {
33
+ return mapOf("setParams" to COMMAND_SET_PARAMS)
34
+ }
35
+
36
+ override fun receiveCommand(
37
+ view: SmileIDConsentView,
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
+
48
+ val partnerName = params.getString("partnerName") ?: return view.emitFailure(IllegalArgumentException("partnerName is required to show Consent Screen"))
49
+ val partnerPrivacyPolicy = params.getString("partnerPrivacyPolicy") ?: return view.emitFailure(IllegalArgumentException("partnerPrivacyPolicy is required to show Consent Screen"))
50
+ val logoResName = params.getString("partnerIcon") ?: return view.emitFailure(IllegalArgumentException("partnerIcon is required to show Consent Screen"))
51
+ val productName = params.getString("productName") ?: return view.emitFailure(IllegalArgumentException("productName is required to show Consent Screen"))
52
+
53
+ view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams",null)?.toMap()
54
+ view.userId = params.getStringOrDefault("userId",null)
55
+ view.jobId = params.getStringOrDefault("jobId",null)
56
+ view.partnerName = partnerName
57
+ view.partnerPrivacyPolicy = partnerPrivacyPolicy
58
+ view.logoResName = logoResName
59
+ view.productName = productName
60
+ view.allowAgentMode = params.getBoolOrDefault("allowAgentMode",false)
61
+ view.showAttribution = params.getBoolOrDefault("showAttribution",true)
62
+ view.showInstructions = params.getBoolOrDefault("showInstructions",true)
63
+ view.renderContent()
64
+ }
65
+ }
66
+ }
67
+ }
68
+ override fun createViewInstance(p0: ThemedReactContext): SmileIDConsentView {
69
+ return SmileIDConsentView(reactApplicationContext)
70
+ }
71
+
72
+ companion object {
73
+ const val NAME = "SmileIDConsentView"
74
+ const val COMMAND_SET_PARAMS = 5
75
+ }
76
+
77
+ }
@@ -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.ReadableMap
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.facebook.react.uimanager.annotations.ReactProp
9
- import com.smileidentity.react.views.SmileIDDocumentVerification
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<SmileIDDocumentVerification>() {
18
+ SimpleViewManager<SmileIDDocumentVerificationView>() {
15
19
  override fun getName(): String {
16
20
  return NAME
17
21
  }
@@ -26,17 +30,47 @@ class SmileIDDocumentVerificationViewManager(private val reactApplicationContext
26
30
  )
27
31
  }
28
32
 
29
- @ReactProp(name = "product")
30
- fun setProduct(view: SmileIDDocumentVerification, product: ReadableMap) {
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 createViewInstance(p0: ThemedReactContext): SmileIDDocumentVerification {
35
- return SmileIDDocumentVerification(reactApplicationContext)
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") ?: return view.emitFailure(IllegalArgumentException("countryCode is required to run Document Verification"))
49
+ view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams", null)?.toMap()
50
+ view.userId = params.getStringOrDefault("userId",null)
51
+ view.jobId = params.getStringOrDefault("jobId",null)
52
+ view.countryCode = countryCode
53
+ view.allowAgentMode = params.getBoolOrDefault("allowAgentMode",false)
54
+ view.showAttribution = params.getBoolOrDefault("showAttribution",true)
55
+ view.captureBothSides = params.getBoolOrDefault("captureBothSides",false)
56
+ view.showInstructions = params.getBoolOrDefault("showInstructions",true)
57
+ view.allowGalleryUpload = params.getBoolOrDefault("allowGalleryUpload",false)
58
+ view.bypassSelfieCaptureWithFilePath = params.getStringOrDefault("bypassSelfieCaptureWithFilePath",null)
59
+ view.documentType = params.getStringOrDefault("documentType",null)
60
+ view.idAspectRatio = params.getFloatOrDefault("idAspectRatio",-1f)
61
+ view.renderContent()
62
+ }
63
+ }
64
+ }
65
+ }
66
+
67
+ override fun createViewInstance(p0: ThemedReactContext): SmileIDDocumentVerificationView {
68
+ return SmileIDDocumentVerificationView(reactApplicationContext)
36
69
  }
37
70
 
38
71
  companion object {
39
72
  const val NAME = "SmileIDDocumentVerificationView"
73
+ const val COMMAND_SET_PARAMS = 4
40
74
  }
41
75
 
42
76
  }
@@ -0,0 +1,75 @@
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") ?: return view.emitFailure(IllegalArgumentException("countryCode is required to run Enhanced Document Verification"))
49
+ view.extraPartnerParams = params.getMapOrDefault("extraPartnerParams", null)?.toMap()
50
+ view.userId = params.getStringOrDefault("userId",null)
51
+ view.jobId = params.getStringOrDefault("jobId",null)
52
+ view.countryCode = countryCode
53
+ view.allowAgentMode = params.getBoolOrDefault("allowAgentMode",false)
54
+ view.showAttribution = params.getBoolOrDefault("showAttribution",true)
55
+ view.captureBothSides = params.getBoolOrDefault("captureBothSides",false)
56
+ view.showInstructions = params.getBoolOrDefault("showInstructions",true)
57
+ view.allowGalleryUpload = params.getBoolOrDefault("allowGalleryUpload",false)
58
+ view.documentType = params.getStringOrDefault("documentType",null)
59
+ view.idAspectRatio = params.getFloatOrDefault("idAspectRatio",-1f)
60
+ view.renderContent()
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ override fun createViewInstance(p0: ThemedReactContext): SmileIDEnhancedDocumentVerificationView {
67
+ return SmileIDEnhancedDocumentVerificationView(reactApplicationContext)
68
+ }
69
+
70
+ companion object {
71
+ const val NAME = "SmileIDEnhancedDocumentVerificationView"
72
+ const val COMMAND_SET_PARAMS = 3
73
+ }
74
+
75
+ }
@@ -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.ReadableMap
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.facebook.react.uimanager.annotations.ReactProp
9
- import com.smileidentity.react.views.SmileIDSmartSelfieAuthentication
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<SmileIDSmartSelfieAuthentication>() {
17
+ SimpleViewManager<SmileIDSmartSelfieAuthenticationView>() {
15
18
  override fun getName(): String {
16
19
  return NAME
17
20
  }
@@ -26,17 +29,40 @@ class SmileIDSmartSelfieAuthenticationViewManager(private val reactApplicationCo
26
29
  )
27
30
  }
28
31
 
29
- @ReactProp(name = "product")
30
- fun setProduct(view: SmileIDSmartSelfieAuthentication, product: ReadableMap) {
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 createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieAuthentication {
35
- return SmileIDSmartSelfieAuthentication(reactApplicationContext)
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", null)?.toMap()
48
+ view.userId = params.getStringOrDefault("userId",null)
49
+ view.jobId = params.getStringOrDefault("jobId",null)
50
+ view.allowAgentMode = params.getBoolOrDefault("allowAgentMode",false)
51
+ view.showAttribution = params.getBoolOrDefault("showAttribution",true)
52
+ view.showInstructions = params.getBoolOrDefault("showInstructions",true)
53
+ view.renderContent()
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ override fun createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieAuthenticationView {
60
+ return SmileIDSmartSelfieAuthenticationView(reactApplicationContext)
36
61
  }
37
62
 
38
63
  companion object {
39
64
  const val NAME = "SmileIDSmartSelfieAuthenticationView"
65
+ const val COMMAND_SET_PARAMS = 2
40
66
  }
41
67
 
42
68
  }
@@ -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.ReadableMap
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.facebook.react.uimanager.annotations.ReactProp
9
- import com.smileidentity.react.views.SmileIDSmartSelfieEnrollment
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<SmileIDSmartSelfieEnrollment>() {
17
+ SimpleViewManager<SmileIDSmartSelfieEnrollmentView>() {
15
18
  override fun getName(): String {
16
19
  return NAME
17
20
  }
@@ -26,17 +29,40 @@ class SmileIDSmartSelfieEnrollmentViewManager(private val reactApplicationContex
26
29
  )
27
30
  }
28
31
 
29
- @ReactProp(name = "product")
30
- fun setProduct(view: SmileIDSmartSelfieEnrollment, product: ReadableMap) {
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 createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieEnrollment {
35
- return SmileIDSmartSelfieEnrollment(reactApplicationContext)
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", null)?.toMap()
48
+ view.userId = params.getStringOrDefault("userId",null)
49
+ view.jobId = params.getStringOrDefault("jobId",null)
50
+ view.allowAgentMode = params.getBoolOrDefault("allowAgentMode",false)
51
+ view.showAttribution = params.getBoolOrDefault("showAttribution",true)
52
+ view.showInstructions = params.getBoolOrDefault("showInstructions",true)
53
+ view.renderContent()
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ override fun createViewInstance(p0: ThemedReactContext): SmileIDSmartSelfieEnrollmentView {
60
+ return SmileIDSmartSelfieEnrollmentView(reactApplicationContext)
36
61
  }
37
62
 
38
63
  companion object {
39
64
  const val NAME = "SmileIDSmartSelfieEnrollmentView"
65
+ const val COMMAND_SET_PARAMS = 1
40
66
  }
41
67
 
42
68
  }