@smile_identity/react-native 10.2.3 → 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 (123) hide show
  1. package/android/build.gradle +4 -1
  2. package/android/gradle.properties +1 -1
  3. package/android/src/main/java/com/smileidentity/react/Mapper.kt +19 -2
  4. package/android/src/main/java/com/smileidentity/react/fragments/SmileCaptureFragment.kt +56 -0
  5. package/android/src/main/java/com/smileidentity/react/utils/ReactUtils.kt +16 -0
  6. package/android/src/main/java/com/smileidentity/react/viewmanagers/BaseSmileIDViewManager.kt +130 -0
  7. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBiometricKYCViewManager.kt +22 -46
  8. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDConsentViewManager.kt +27 -52
  9. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentCaptureViewManager.kt +15 -40
  10. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentVerificationViewManager.kt +23 -49
  11. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDEnhancedDocumentVerificationViewManager.kt +28 -47
  12. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationEnhancedViewManager.kt +12 -37
  13. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationViewManager.kt +16 -40
  14. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieCaptureViewManager.kt +15 -38
  15. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentEnhancedViewManager.kt +13 -38
  16. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentViewManager.kt +15 -44
  17. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYCView.kt +7 -0
  18. package/android/src/main/java/com/smileidentity/react/views/SmileIDEnhancedDocumentVerificationView.kt +8 -0
  19. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieCaptureView.kt +38 -25
  20. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollmentEnhancedView.kt +29 -21
  21. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollmentView.kt +35 -28
  22. package/android/src/main/java/com/smileidentity/react/views/SmileIDView.kt +11 -10
  23. package/android/src/main/res/values/colors.xml +14 -0
  24. package/android/src/main/res/values/strings.xml +91 -0
  25. package/ios/ViewManagers/SmileIDBaseViewManager.swift +24 -20
  26. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.m +4 -1
  27. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.swift +24 -24
  28. package/ios/ViewManagers/SmileIDConsentViewManager.m +4 -1
  29. package/ios/ViewManagers/SmileIDConsentViewManager.swift +1 -1
  30. package/ios/ViewManagers/SmileIDDocumentCaptureViewManager.m +4 -1
  31. package/ios/ViewManagers/SmileIDDocumentCaptureViewManager.swift +1 -1
  32. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.m +4 -1
  33. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.swift +1 -1
  34. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.m +4 -1
  35. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.swift +1 -1
  36. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationEnhancedViewManager.m +4 -1
  37. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationEnhancedViewManager.swift +1 -1
  38. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.m +4 -1
  39. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.swift +1 -1
  40. package/ios/ViewManagers/SmileIDSmartSelfieCaptureViewManager.m +4 -1
  41. package/ios/ViewManagers/SmileIDSmartSelfieCaptureViewManager.swift +1 -1
  42. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentEnhancedViewManager.m +4 -1
  43. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentEnhancedViewManager.swift +1 -1
  44. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.m +4 -1
  45. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.swift +1 -1
  46. package/lib/commonjs/SmileIDBiometricKYCView.js +18 -29
  47. package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -1
  48. package/lib/commonjs/SmileIDConsentView.js +9 -29
  49. package/lib/commonjs/SmileIDConsentView.js.map +1 -1
  50. package/lib/commonjs/SmileIDDocumentCaptureView.js +9 -29
  51. package/lib/commonjs/SmileIDDocumentCaptureView.js.map +1 -1
  52. package/lib/commonjs/SmileIDDocumentVerificationView.js +9 -29
  53. package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -1
  54. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +17 -28
  55. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -1
  56. package/lib/commonjs/SmileIDSmartSelfieAuthenticationEnhancedView.js +9 -29
  57. package/lib/commonjs/SmileIDSmartSelfieAuthenticationEnhancedView.js.map +1 -1
  58. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +9 -29
  59. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -1
  60. package/lib/commonjs/SmileIDSmartSelfieCaptureView.js +9 -29
  61. package/lib/commonjs/SmileIDSmartSelfieCaptureView.js.map +1 -1
  62. package/lib/commonjs/SmileIDSmartSelfieEnrollmentEnhancedView.js +9 -29
  63. package/lib/commonjs/SmileIDSmartSelfieEnrollmentEnhancedView.js.map +1 -1
  64. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +9 -29
  65. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -1
  66. package/lib/commonjs/useSmileIDView.js +55 -0
  67. package/lib/commonjs/useSmileIDView.js.map +1 -0
  68. package/lib/module/SmileIDBiometricKYCView.js +18 -26
  69. package/lib/module/SmileIDBiometricKYCView.js.map +1 -1
  70. package/lib/module/SmileIDConsentView.js +9 -26
  71. package/lib/module/SmileIDConsentView.js.map +1 -1
  72. package/lib/module/SmileIDDocumentCaptureView.js +9 -26
  73. package/lib/module/SmileIDDocumentCaptureView.js.map +1 -1
  74. package/lib/module/SmileIDDocumentVerificationView.js +9 -26
  75. package/lib/module/SmileIDDocumentVerificationView.js.map +1 -1
  76. package/lib/module/SmileIDEnhancedDocumentVerificationView.js +17 -25
  77. package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -1
  78. package/lib/module/SmileIDSmartSelfieAuthenticationEnhancedView.js +9 -26
  79. package/lib/module/SmileIDSmartSelfieAuthenticationEnhancedView.js.map +1 -1
  80. package/lib/module/SmileIDSmartSelfieAuthenticationView.js +9 -26
  81. package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -1
  82. package/lib/module/SmileIDSmartSelfieCaptureView.js +9 -26
  83. package/lib/module/SmileIDSmartSelfieCaptureView.js.map +1 -1
  84. package/lib/module/SmileIDSmartSelfieEnrollmentEnhancedView.js +9 -26
  85. package/lib/module/SmileIDSmartSelfieEnrollmentEnhancedView.js.map +1 -1
  86. package/lib/module/SmileIDSmartSelfieEnrollmentView.js +9 -26
  87. package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -1
  88. package/lib/module/useSmileIDView.js +48 -0
  89. package/lib/module/useSmileIDView.js.map +1 -0
  90. package/lib/typescript/SmileIDBiometricKYCView.d.ts +3 -6
  91. package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +1 -1
  92. package/lib/typescript/SmileIDConsentView.d.ts +3 -6
  93. package/lib/typescript/SmileIDConsentView.d.ts.map +1 -1
  94. package/lib/typescript/SmileIDDocumentCaptureView.d.ts +3 -6
  95. package/lib/typescript/SmileIDDocumentCaptureView.d.ts.map +1 -1
  96. package/lib/typescript/SmileIDDocumentVerificationView.d.ts +3 -6
  97. package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +1 -1
  98. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts +3 -6
  99. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -1
  100. package/lib/typescript/SmileIDSmartSelfieAuthenticationEnhancedView.d.ts +3 -6
  101. package/lib/typescript/SmileIDSmartSelfieAuthenticationEnhancedView.d.ts.map +1 -1
  102. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts +3 -6
  103. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -1
  104. package/lib/typescript/SmileIDSmartSelfieCaptureView.d.ts +3 -6
  105. package/lib/typescript/SmileIDSmartSelfieCaptureView.d.ts.map +1 -1
  106. package/lib/typescript/SmileIDSmartSelfieEnrollmentEnhancedView.d.ts +3 -6
  107. package/lib/typescript/SmileIDSmartSelfieEnrollmentEnhancedView.d.ts.map +1 -1
  108. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts +3 -6
  109. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -1
  110. package/lib/typescript/useSmileIDView.d.ts +12 -0
  111. package/lib/typescript/useSmileIDView.d.ts.map +1 -0
  112. package/package.json +1 -1
  113. package/src/SmileIDBiometricKYCView.tsx +14 -30
  114. package/src/SmileIDConsentView.tsx +7 -30
  115. package/src/SmileIDDocumentCaptureView.tsx +9 -33
  116. package/src/SmileIDDocumentVerificationView.tsx +9 -36
  117. package/src/SmileIDEnhancedDocumentVerificationView.tsx +23 -35
  118. package/src/SmileIDSmartSelfieAuthenticationEnhancedView.tsx +17 -36
  119. package/src/SmileIDSmartSelfieAuthenticationView.tsx +10 -37
  120. package/src/SmileIDSmartSelfieCaptureView.tsx +9 -33
  121. package/src/SmileIDSmartSelfieEnrollmentEnhancedView.tsx +14 -36
  122. package/src/SmileIDSmartSelfieEnrollmentView.tsx +10 -37
  123. package/src/useSmileIDView.tsx +80 -0
@@ -1,44 +1,20 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { DocumentVerificationRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDDocumentCaptureComponent =
8
8
  codegenNativeComponent<DocumentVerificationRequest>(
9
9
  'SmileIDDocumentCaptureView'
10
10
  ) as HostComponent<DocumentVerificationRequest>;
11
11
 
12
- export default class SmileIDDocumentCaptureView extends Component<DocumentVerificationRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDDocumentCaptureView: React.FC<DocumentVerificationRequest> = (
13
+ props
14
+ ) => {
15
+ const viewRef = useSmileIDView('SmileIDDocumentCaptureView', props);
14
16
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
17
+ return <SmileIDDocumentCaptureComponent ref={viewRef} {...props} />;
18
+ };
19
19
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDDocumentCaptureView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDDocumentCaptureComponent ref={this.viewRef} {...this.props} />
42
- );
43
- }
44
- }
20
+ export default SmileIDDocumentCaptureView;
@@ -1,47 +1,20 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { DocumentVerificationRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDDocumentVerificationComponent =
8
8
  codegenNativeComponent<DocumentVerificationRequest>(
9
9
  'SmileIDDocumentVerificationView'
10
10
  ) as HostComponent<DocumentVerificationRequest>;
11
11
 
12
- export default class SmileIDDocumentVerificationView extends Component<DocumentVerificationRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDDocumentVerificationView: React.FC<DocumentVerificationRequest> = (
13
+ props
14
+ ) => {
15
+ const viewRef = useSmileIDView('SmileIDDocumentVerificationView', props);
14
16
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
17
+ return <SmileIDDocumentVerificationComponent ref={viewRef} {...props} />;
18
+ };
19
19
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDDocumentVerificationView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDDocumentVerificationComponent
42
- ref={this.viewRef}
43
- {...this.props}
44
- />
45
- );
46
- }
47
- }
20
+ export default SmileIDDocumentVerificationView;
@@ -1,47 +1,35 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { DocumentVerificationRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDEnhancedDocumentVerificationComponent =
8
8
  codegenNativeComponent<DocumentVerificationRequest>(
9
9
  'SmileIDEnhancedDocumentVerificationView'
10
10
  ) as HostComponent<DocumentVerificationRequest>;
11
11
 
12
- export default class SmileIDEnhancedDocumentVerificationView extends Component<DocumentVerificationRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const defaultConsentInfo = {
13
+ consentInformation: {
14
+ timestamp: new Date().toISOString(),
15
+ },
16
+ };
14
17
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
18
+ const SmileIDEnhancedDocumentVerificationView: React.FC<
19
+ DocumentVerificationRequest
20
+ > = (props) => {
21
+ const mergedProps = { ...defaultConsentInfo, ...props };
22
+ const viewRef = useSmileIDView(
23
+ 'SmileIDEnhancedDocumentVerificationView',
24
+ mergedProps
25
+ );
19
26
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDEnhancedDocumentVerificationView'
23
- ).Commands.setParams;
27
+ return (
28
+ <SmileIDEnhancedDocumentVerificationComponent
29
+ ref={viewRef}
30
+ {...mergedProps}
31
+ />
32
+ );
33
+ };
24
34
 
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDEnhancedDocumentVerificationComponent
42
- ref={this.viewRef}
43
- {...this.props}
44
- />
45
- );
46
- }
47
- }
35
+ export default SmileIDEnhancedDocumentVerificationView;
@@ -1,47 +1,28 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { SmartSelfieAuthenticationEnhancedRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDSmartSelfieAuthenticationEnhancedComponent =
8
8
  codegenNativeComponent<SmartSelfieAuthenticationEnhancedRequest>(
9
9
  'SmileIDSmartSelfieAuthenticationEnhancedView'
10
10
  ) as HostComponent<SmartSelfieAuthenticationEnhancedRequest>;
11
11
 
12
- export default class SmileIDSmartSelfieAuthenticationEnhancedView extends Component<SmartSelfieAuthenticationEnhancedRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDSmartSelfieAuthenticationEnhancedView: React.FC<
13
+ SmartSelfieAuthenticationEnhancedRequest
14
+ > = (props) => {
15
+ const viewRef = useSmileIDView(
16
+ 'SmileIDSmartSelfieAuthenticationEnhancedView',
17
+ props
18
+ );
14
19
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
20
+ return (
21
+ <SmileIDSmartSelfieAuthenticationEnhancedComponent
22
+ ref={viewRef}
23
+ {...props}
24
+ />
25
+ );
26
+ };
19
27
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDSmartSelfieAuthenticationEnhancedView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDSmartSelfieAuthenticationEnhancedComponent
42
- ref={this.viewRef}
43
- {...this.props}
44
- />
45
- );
46
- }
47
- }
28
+ export default SmileIDSmartSelfieAuthenticationEnhancedView;
@@ -1,47 +1,20 @@
1
- import React, { Component } from 'react';
2
- import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
1
+ import React from 'react';
2
+ import { type HostComponent } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { SmartSelfieAuthenticationRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDSmartSelfieAuthenticationComponent =
8
8
  codegenNativeComponent<SmartSelfieAuthenticationRequest>(
9
9
  'SmileIDSmartSelfieAuthenticationView'
10
10
  ) as HostComponent<SmartSelfieAuthenticationRequest>;
11
11
 
12
- export default class SmileIDSmartSelfieAuthenticationView extends Component<SmartSelfieAuthenticationRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDSmartSelfieAuthenticationView: React.FC<
13
+ SmartSelfieAuthenticationRequest
14
+ > = (props) => {
15
+ const viewRef = useSmileIDView('SmileIDSmartSelfieAuthenticationView', props);
14
16
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
17
+ return <SmileIDSmartSelfieAuthenticationComponent ref={viewRef} {...props} />;
18
+ };
19
19
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDSmartSelfieAuthenticationView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDSmartSelfieAuthenticationComponent
42
- ref={this.viewRef}
43
- {...this.props}
44
- />
45
- );
46
- }
47
- }
20
+ export default SmileIDSmartSelfieAuthenticationView;
@@ -1,44 +1,20 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { SmartSelfieEnrollmentRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDSmartSelfieCaptureComponent =
8
8
  codegenNativeComponent<SmartSelfieEnrollmentRequest>(
9
9
  'SmileIDSmartSelfieCaptureView'
10
10
  ) as HostComponent<SmartSelfieEnrollmentRequest>;
11
11
 
12
- export default class SmileIDSmartSelfieCaptureView extends Component<SmartSelfieEnrollmentRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDSmartSelfieCaptureView: React.FC<SmartSelfieEnrollmentRequest> = (
13
+ props
14
+ ) => {
15
+ const viewRef = useSmileIDView('SmileIDSmartSelfieCaptureView', props);
14
16
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
17
+ return <SmileIDSmartSelfieCaptureComponent ref={viewRef} {...props} />;
18
+ };
19
19
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDSmartSelfieCaptureView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDSmartSelfieCaptureComponent ref={this.viewRef} {...this.props} />
42
- );
43
- }
44
- }
20
+ export default SmileIDSmartSelfieCaptureView;
@@ -1,47 +1,25 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { SmartSelfieEnrollmentEnhancedRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDSmartSelfieEnrollmentEnhancedComponent =
8
8
  codegenNativeComponent<SmartSelfieEnrollmentEnhancedRequest>(
9
9
  'SmileIDSmartSelfieEnrollmentEnhancedView'
10
10
  ) as HostComponent<SmartSelfieEnrollmentEnhancedRequest>;
11
11
 
12
- export default class SmileIDSmartSelfieEnrollmentEnhancedView extends Component<SmartSelfieEnrollmentEnhancedRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDSmartSelfieEnrollmentEnhancedView: React.FC<
13
+ SmartSelfieEnrollmentEnhancedRequest
14
+ > = (props) => {
15
+ const viewRef = useSmileIDView(
16
+ 'SmileIDSmartSelfieEnrollmentEnhancedView',
17
+ props
18
+ );
14
19
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
20
+ return (
21
+ <SmileIDSmartSelfieEnrollmentEnhancedComponent ref={viewRef} {...props} />
22
+ );
23
+ };
19
24
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDSmartSelfieEnrollmentEnhancedView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDSmartSelfieEnrollmentEnhancedComponent
42
- ref={this.viewRef}
43
- {...this.props}
44
- />
45
- );
46
- }
47
- }
25
+ export default SmileIDSmartSelfieEnrollmentEnhancedView;
@@ -1,47 +1,20 @@
1
- import React, { Component } from 'react';
2
- import type { HostComponent } from 'react-native';
3
- import { UIManager, findNodeHandle, Platform } from 'react-native';
1
+ import React from 'react';
2
+ import { type HostComponent } from 'react-native';
4
3
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
5
4
  import type { SmartSelfieEnrollmentRequest } from './index';
5
+ import { useSmileIDView } from './useSmileIDView';
6
6
 
7
7
  const SmileIDSmartSelfieEnrollmentComponent =
8
8
  codegenNativeComponent<SmartSelfieEnrollmentRequest>(
9
9
  'SmileIDSmartSelfieEnrollmentView'
10
10
  ) as HostComponent<SmartSelfieEnrollmentRequest>;
11
11
 
12
- export default class SmileIDSmartSelfieEnrollmentView extends Component<SmartSelfieEnrollmentRequest> {
13
- private viewRef = React.createRef<any>(); //
12
+ const SmileIDSmartSelfieEnrollmentView: React.FC<
13
+ SmartSelfieEnrollmentRequest
14
+ > = (props) => {
15
+ const viewRef = useSmileIDView('SmileIDSmartSelfieEnrollmentView', props);
14
16
 
15
- componentDidMount() {
16
- const parameters = {
17
- ...this.props,
18
- };
17
+ return <SmileIDSmartSelfieEnrollmentComponent ref={viewRef} {...props} />;
18
+ };
19
19
 
20
- // Obtain the command identifier
21
- const commandId = UIManager.getViewManagerConfig(
22
- 'SmileIDSmartSelfieEnrollmentView'
23
- ).Commands.setParams;
24
-
25
- // Ensure the commandId is defined and is a number
26
- if (typeof commandId !== 'undefined') {
27
- UIManager.dispatchViewManagerCommand(
28
- findNodeHandle(this.viewRef.current),
29
- Platform.OS === 'android' ? commandId.toString() : commandId,
30
- [parameters]
31
- );
32
- } else {
33
- throw new Error(
34
- 'Command "setParams" is not defined for MyNativeComponent'
35
- );
36
- }
37
- }
38
-
39
- render() {
40
- return (
41
- <SmileIDSmartSelfieEnrollmentComponent
42
- ref={this.viewRef}
43
- {...this.props}
44
- />
45
- );
46
- }
47
- }
20
+ export default SmileIDSmartSelfieEnrollmentView;
@@ -0,0 +1,80 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import {
3
+ DeviceEventEmitter,
4
+ Platform,
5
+ UIManager,
6
+ findNodeHandle,
7
+ } from 'react-native';
8
+
9
+ interface SmileIDProps {
10
+ onResult?: (event: { nativeEvent: { error: any; result: any } }) => void;
11
+ [key: string]: any;
12
+ }
13
+
14
+ export const useSmileIDView = (viewName: string, props: SmileIDProps) => {
15
+ const viewRef = useRef<any>(null);
16
+
17
+ useEffect(() => {
18
+ const eventListener = DeviceEventEmitter.addListener(
19
+ 'onSmileResult',
20
+ (event) => {
21
+ if (props.onResult) {
22
+ const nativeEvent = {
23
+ nativeEvent: {
24
+ error: event.error,
25
+ result: event.result,
26
+ },
27
+ };
28
+ props.onResult(nativeEvent);
29
+ }
30
+ }
31
+ );
32
+
33
+ return () => {
34
+ eventListener.remove();
35
+ };
36
+ }, [props]);
37
+
38
+ useEffect(() => {
39
+ const viewId = findNodeHandle(viewRef.current);
40
+ const commandId = UIManager.getViewManagerConfig(viewName).Commands.create;
41
+
42
+ // Ensure the commandId is defined and is a number
43
+ if (typeof commandId !== 'undefined') {
44
+ UIManager.dispatchViewManagerCommand(
45
+ findNodeHandle(viewRef.current),
46
+ Platform.OS === 'android' ? commandId.toString() : commandId,
47
+ [viewId]
48
+ );
49
+ } else {
50
+ throw new Error(
51
+ 'Command "setParams" is not defined for MyNativeComponent'
52
+ );
53
+ }
54
+ }, [viewName]);
55
+
56
+ useEffect(() => {
57
+ const parameters = {
58
+ ...props,
59
+ };
60
+
61
+ const viewId = findNodeHandle(viewRef.current);
62
+ const commandId =
63
+ UIManager.getViewManagerConfig(viewName).Commands.setParams;
64
+
65
+ // Ensure the commandId is defined and is a number
66
+ if (typeof commandId !== 'undefined') {
67
+ UIManager.dispatchViewManagerCommand(
68
+ findNodeHandle(viewRef.current),
69
+ Platform.OS === 'android' ? commandId.toString() : commandId,
70
+ [viewId, parameters]
71
+ );
72
+ } else {
73
+ throw new Error(
74
+ 'Command "setParams" is not defined for MyNativeComponent'
75
+ );
76
+ }
77
+ }, [props, viewName]);
78
+
79
+ return viewRef;
80
+ };