react-native-unit-components 3.1.2-beta.7 → 3.2.0

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 (104) hide show
  1. package/README.md +77 -1
  2. package/android/src/main/java/com/unitreactnativecomponents/nativeModules/sharefile/UNShareFile.kt +18 -8
  3. package/ios/NativeModules/UNShareFile/UNShareFileExportModule.m +7 -0
  4. package/ios/NativeModules/UNShareFile/UNShareFileModule.swift +54 -0
  5. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  6. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +1 -0
  7. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  8. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +25 -1
  9. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  10. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +14 -2
  11. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -1
  12. package/lib/commonjs/messages/webMessages/veryfiMessages.js +11 -0
  13. package/lib/commonjs/messages/webMessages/veryfiMessages.js.map +1 -0
  14. package/lib/commonjs/nativeModulesHelpers/RNShareFile/RNShareFile.js +1 -11
  15. package/lib/commonjs/nativeModulesHelpers/RNShareFile/RNShareFile.js.map +1 -1
  16. package/lib/commonjs/scripts/html/bodyScript.js +18 -1
  17. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
  18. package/lib/commonjs/services/veryfiService.js +107 -0
  19. package/lib/commonjs/services/veryfiService.js.map +1 -0
  20. package/lib/commonjs/slices/ConfigurationSlice.js +7 -2
  21. package/lib/commonjs/slices/ConfigurationSlice.js.map +1 -1
  22. package/lib/commonjs/types/shared/index.js +11 -0
  23. package/lib/commonjs/types/shared/index.js.map +1 -1
  24. package/lib/commonjs/types/shared/veryfi.types.js +2 -0
  25. package/lib/commonjs/types/shared/veryfi.types.js.map +1 -0
  26. package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdkManager.js +4 -1
  27. package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdkManager.js.map +1 -1
  28. package/lib/commonjs/webComponent/WebComponent.js +8 -3
  29. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  30. package/lib/commonjs/webComponent/WebComponent.utils.js +19 -10
  31. package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -1
  32. package/lib/commonjs/webComponent/html.js +4 -3
  33. package/lib/commonjs/webComponent/html.js.map +1 -1
  34. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  35. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +1 -0
  36. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  37. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +27 -3
  38. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  39. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +13 -2
  40. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -1
  41. package/lib/module/messages/webMessages/veryfiMessages.js +5 -0
  42. package/lib/module/messages/webMessages/veryfiMessages.js.map +1 -0
  43. package/lib/module/nativeModulesHelpers/RNShareFile/RNShareFile.js +2 -12
  44. package/lib/module/nativeModulesHelpers/RNShareFile/RNShareFile.js.map +1 -1
  45. package/lib/module/scripts/html/bodyScript.js +17 -0
  46. package/lib/module/scripts/html/bodyScript.js.map +1 -1
  47. package/lib/module/services/veryfiService.js +99 -0
  48. package/lib/module/services/veryfiService.js.map +1 -0
  49. package/lib/module/slices/ConfigurationSlice.js +5 -1
  50. package/lib/module/slices/ConfigurationSlice.js.map +1 -1
  51. package/lib/module/types/shared/index.js +1 -0
  52. package/lib/module/types/shared/index.js.map +1 -1
  53. package/lib/module/types/shared/veryfi.types.js +2 -0
  54. package/lib/module/types/shared/veryfi.types.js.map +1 -0
  55. package/lib/module/unitComponentsSdkManager/UnitComponentsSdkManager.js +5 -2
  56. package/lib/module/unitComponentsSdkManager/UnitComponentsSdkManager.js.map +1 -1
  57. package/lib/module/webComponent/WebComponent.js +8 -3
  58. package/lib/module/webComponent/WebComponent.js.map +1 -1
  59. package/lib/module/webComponent/WebComponent.utils.js +20 -11
  60. package/lib/module/webComponent/WebComponent.utils.js.map +1 -1
  61. package/lib/module/webComponent/html.js +5 -4
  62. package/lib/module/webComponent/html.js.map +1 -1
  63. package/lib/typescript/src/components/UNActivityComponent/UNActivityComponent.d.ts +1 -0
  64. package/lib/typescript/src/components/UNActivityComponent/UNActivityComponent.d.ts.map +1 -1
  65. package/lib/typescript/src/components/UNActivityComponent/UNActivityComponent.utils.d.ts.map +1 -1
  66. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts.map +1 -1
  67. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.d.ts +5 -1
  68. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.d.ts.map +1 -1
  69. package/lib/typescript/src/messages/webMessages/veryfiMessages.d.ts +4 -0
  70. package/lib/typescript/src/messages/webMessages/veryfiMessages.d.ts.map +1 -0
  71. package/lib/typescript/src/nativeModulesHelpers/RNShareFile/RNShareFile.d.ts +5 -1
  72. package/lib/typescript/src/nativeModulesHelpers/RNShareFile/RNShareFile.d.ts.map +1 -1
  73. package/lib/typescript/src/scripts/html/bodyScript.d.ts +2 -0
  74. package/lib/typescript/src/scripts/html/bodyScript.d.ts.map +1 -1
  75. package/lib/typescript/src/services/veryfiService.d.ts +8 -0
  76. package/lib/typescript/src/services/veryfiService.d.ts.map +1 -0
  77. package/lib/typescript/src/slices/ConfigurationSlice.d.ts +3 -1
  78. package/lib/typescript/src/slices/ConfigurationSlice.d.ts.map +1 -1
  79. package/lib/typescript/src/types/shared/index.d.ts +1 -0
  80. package/lib/typescript/src/types/shared/index.d.ts.map +1 -1
  81. package/lib/typescript/src/types/shared/veryfi.types.d.ts +7 -0
  82. package/lib/typescript/src/types/shared/veryfi.types.d.ts.map +1 -0
  83. package/lib/typescript/src/unitComponentsSdkManager/UnitComponentsSdkManager.d.ts +2 -0
  84. package/lib/typescript/src/unitComponentsSdkManager/UnitComponentsSdkManager.d.ts.map +1 -1
  85. package/lib/typescript/src/webComponent/WebComponent.d.ts.map +1 -1
  86. package/lib/typescript/src/webComponent/WebComponent.utils.d.ts +5 -1
  87. package/lib/typescript/src/webComponent/WebComponent.utils.d.ts.map +1 -1
  88. package/lib/typescript/src/webComponent/html.d.ts.map +1 -1
  89. package/package.json +11 -4
  90. package/src/components/UNActivityComponent/UNActivityComponent.tsx +1 -0
  91. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +1 -0
  92. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +33 -4
  93. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.ts +14 -2
  94. package/src/messages/webMessages/veryfiMessages.ts +3 -0
  95. package/src/nativeModulesHelpers/RNShareFile/RNShareFile.ts +5 -15
  96. package/src/scripts/html/bodyScript.ts +19 -0
  97. package/src/services/veryfiService.ts +123 -0
  98. package/src/slices/ConfigurationSlice.ts +7 -2
  99. package/src/types/shared/index.ts +1 -0
  100. package/src/types/shared/veryfi.types.ts +6 -0
  101. package/src/unitComponentsSdkManager/UnitComponentsSdkManager.ts +7 -2
  102. package/src/webComponent/WebComponent.tsx +7 -3
  103. package/src/webComponent/WebComponent.utils.ts +19 -9
  104. package/src/webComponent/html.ts +5 -3
@@ -5,9 +5,10 @@ import type { UNFonts } from '../types/shared/fonts.types';
5
5
  import { warnClientIfNeeded } from '../utils/webVersioningStrategy.utils';
6
6
  import { UNComponentsSDKConstants } from './UnitComponentsSdk.constants';
7
7
  import type { UNComponentsWebVersioningStrategy } from '../types/shared';
8
- import { setTheme, setLanguage, setCustomerToken } from '../slices/ConfigurationSlice';
8
+ import { setTheme, setLanguage, setCustomerToken, setVeryfiCredentials } from '../slices/ConfigurationSlice';
9
9
  import { store } from '../store/store';
10
10
  import { UNComponentsEnvironment } from '../types/shared/env.types';
11
+ import type { UNVeryfiCredentials } from '../types/shared/veryfi.types';
11
12
  import { UserDataKeys } from '../types/internal/unitStore.types';
12
13
  import UNStoreManagerHelper from '../nativeModulesHelpers/UNStoreModuleHelper/UNStoreModuleHelper';
13
14
  import { UnitComponentsHelpersManager } from './unitComponentsHelpersManager/UnitComponentsHelpersManager';
@@ -26,7 +27,7 @@ export class UnitComponentsSDK {
26
27
  protected static fonts?: UNFonts;
27
28
  protected static signedNonce?: string;
28
29
  protected static pushProvisionModule?: typeof NativeModules;
29
- protected static sdkVersion = '3.1.2-beta.7';
30
+ protected static sdkVersion = '3.2.0';
30
31
  static iosFontBase64Map: Record<string, string> = {};
31
32
 
32
33
  public static init = async (
@@ -115,6 +116,10 @@ export class UnitComponentsSDK {
115
116
  return this.sdkVersion;
116
117
  };
117
118
 
119
+ public static setVeryfiCredentials = (credentials: UNVeryfiCredentials) => {
120
+ store.dispatch(setVeryfiCredentials(credentials));
121
+ };
122
+
118
123
  public static cleanUserData = () => {
119
124
  UNStoreManagerHelper.cleanValue(UserDataKeys.unitCustomerToken);
120
125
  UNStoreManagerHelper.cleanValue(UserDataKeys.unitVerifiedCustomerToken);
@@ -52,7 +52,7 @@ export const WebComponent = React.forwardRef<WebView, WebComponentProps>(functio
52
52
  const [androidPackageName, setAndroidPackageName] = useState<string>();
53
53
  const [infoParams, setInfoParams] = useState<{ [key: string]: string }>({});
54
54
 
55
- const webRef = useRef(null);
55
+ const webRef = useRef<WebView>(null);
56
56
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
57
57
  useImperativeHandle(webOutRef, () => webRef.current!);
58
58
 
@@ -156,10 +156,14 @@ export const WebComponent = React.forwardRef<WebView, WebComponentProps>(functio
156
156
  break;
157
157
 
158
158
  case UnitComponentsMessage.UNIT_REQUEST_DOWNLOAD:
159
- message.details &&
160
- handleRequestDownload(message.details as RequestDownloadEvent, () => {
159
+ if (message.details) {
160
+ handleRequestDownload(message.details as RequestDownloadEvent).then((result) => {
161
+ const urlArg = JSON.stringify(result.url);
162
+ const errorArg = result.error ? JSON.stringify(result.error) : 'undefined';
163
+ webRef.current?.injectJavaScript(`dispatchOnDownload(${urlArg}, ${errorArg})`);
161
164
  eventBus.emit(UnitComponentsMessage.UNIT_REQUEST_CLOSE_FLOW, {});
162
165
  });
166
+ }
163
167
  break;
164
168
  case UnitComponentsMessage.UNIT_MULTI_FACTOR_AUTH_FINISHED:
165
169
  if (message.details) {
@@ -1,5 +1,5 @@
1
1
  import axios from 'axios';
2
- import { Share, Platform } from 'react-native';
2
+ import { Platform } from 'react-native';
3
3
  import AppInfo from '../utils/AppInfo';
4
4
  import type { EventToContinueEvent, RequestDownloadEvent } from '../messages/webMessages/unitComponentsMessages';
5
5
  import { UnitComponentsSDK } from '../unitComponentsSdkManager/UnitComponentsSdkManager';
@@ -21,10 +21,22 @@ export const getInfoParams = async () => {
21
21
  return infoParams;
22
22
  };
23
23
 
24
- export const handleRequestDownload = async (details: RequestDownloadEvent, onReadyToShare: () => void) => {
25
- if (details.fileType === 'application/pdf') {
24
+ export interface DownloadResult {
25
+ url: string;
26
+ error?: string;
27
+ }
28
+
29
+ const SUPPORTED_DOWNLOAD_TYPES = ['application/pdf', 'text/csv'];
30
+
31
+ export const handleRequestDownload = async (details: RequestDownloadEvent): Promise<DownloadResult> => {
32
+ if (!SUPPORTED_DOWNLOAD_TYPES.includes(details.fileType)) {
33
+ return { url: details.url, error: `Unsupported file type: ${details.fileType}` };
34
+ }
35
+
36
+ try {
26
37
  const res = await axios.get(details.url, {
27
38
  headers: {
39
+ 'Accept': details.fileType,
28
40
  'Authorization': `Bearer ${details.accessToken}`
29
41
  },
30
42
  responseEncoding: 'base64',
@@ -33,13 +45,11 @@ export const handleRequestDownload = async (details: RequestDownloadEvent, onRea
33
45
 
34
46
  const base64Data = res.request._response;
35
47
 
36
- onReadyToShare();
48
+ await RNShareFile.share(base64Data, details.fileName);
37
49
 
38
- if (Platform.OS === 'ios') {
39
- Share.share({ url: `data:application/pdf;base64,${base64Data}` });
40
- } else {
41
- RNShareFile.share(base64Data, details.fileName);
42
- }
50
+ return { url: details.url };
51
+ } catch (error: any) {
52
+ return { url: details.url, error: error?.message || 'Download failed' };
43
53
  }
44
54
  };
45
55
 
@@ -16,6 +16,7 @@ import {
16
16
  DISPATCH_MULTIPLE_CARDS_FILTER_CHANGED_EVENT,
17
17
  DISPATCH_CARD_CREATED_EVENT,
18
18
  DISPATCH_ACCOUNT_CREATED_EVENT,
19
+ DISPATCH_ON_DOWNLOAD,
19
20
  } from '../scripts/html/bodyScript';
20
21
 
21
22
  export const HTML_PLACEHOLDER = {
@@ -42,14 +43,13 @@ const htmlText = `
42
43
  }
43
44
  ${HTML_PLACEHOLDER.WINDOW_PARAMS}
44
45
  </script>
45
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
46
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
46
47
 
47
48
  <style type="text/css">
48
49
  ${HTML_PLACEHOLDER.FONT_FACES}
49
50
 
50
- html, body {
51
+ body {
51
52
  margin: 0;
52
- overscroll-behavior: contain;
53
53
  }
54
54
  </style>
55
55
  </head>
@@ -124,6 +124,8 @@ const htmlText = `
124
124
 
125
125
  ${SET_ITEM_IN_WINDOW_UNIT_STORE}
126
126
 
127
+ ${DISPATCH_ON_DOWNLOAD}
128
+
127
129
  ${HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE}
128
130
  </script>
129
131
  </body>