react-native-unit-components 1.2.1 → 1.4.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 (192) hide show
  1. package/README.md +0 -255
  2. package/ios/Camera/Camera.swift +22 -0
  3. package/ios/Camera/CameraExportModule.m +7 -0
  4. package/ios/UNAppInfo/UNAppInfo.swift +19 -0
  5. package/ios/UNAppInfo/UNAppInfoExportModule.m +7 -0
  6. package/ios/UnitReactNativeComponentsViewManager.swift +7 -7
  7. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js +24 -1
  8. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
  9. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js +24 -1
  10. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
  11. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +28 -3
  12. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
  13. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +11 -1
  14. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
  15. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +32 -1
  16. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  17. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +8 -1
  18. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  19. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +18 -1
  20. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  21. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +7 -0
  22. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  23. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +37 -3
  24. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
  25. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +9 -1
  26. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  27. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +97 -0
  28. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -0
  29. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +45 -0
  30. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -0
  31. package/lib/commonjs/components/index.js +11 -0
  32. package/lib/commonjs/components/index.js.map +1 -1
  33. package/lib/commonjs/hooks/listenerToBus.js +4 -1
  34. package/lib/commonjs/hooks/listenerToBus.js.map +1 -1
  35. package/lib/commonjs/messages/webMessages/activityMessage.js +12 -0
  36. package/lib/commonjs/messages/webMessages/activityMessage.js.map +1 -0
  37. package/lib/commonjs/messages/webMessages/cardMessage.js +1 -0
  38. package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -1
  39. package/lib/commonjs/messages/webMessages/checkMessage.js +13 -0
  40. package/lib/commonjs/messages/webMessages/checkMessage.js.map +1 -0
  41. package/lib/commonjs/messages/webMessages/index.js.map +1 -1
  42. package/lib/commonjs/messages/webMessages/onLoadMessage.js +17 -0
  43. package/lib/commonjs/messages/webMessages/onLoadMessage.js.map +1 -0
  44. package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
  45. package/lib/commonjs/scripts/html/bodyScript.js +42 -1
  46. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
  47. package/lib/commonjs/sharedTypes/account.types.js +8 -1
  48. package/lib/commonjs/sharedTypes/account.types.js.map +1 -1
  49. package/lib/commonjs/sharedTypes/achCredit.types.js.map +1 -1
  50. package/lib/commonjs/sharedTypes/activity.types.js +6 -0
  51. package/lib/commonjs/sharedTypes/activity.types.js.map +1 -0
  52. package/lib/commonjs/sharedTypes/authorization.types.js +2 -0
  53. package/lib/commonjs/sharedTypes/authorization.types.js.map +1 -0
  54. package/lib/commonjs/sharedTypes/card.types.js +15 -0
  55. package/lib/commonjs/sharedTypes/card.types.js.map +1 -1
  56. package/lib/commonjs/sharedTypes/checkDeposit.types.js +22 -0
  57. package/lib/commonjs/sharedTypes/checkDeposit.types.js.map +1 -0
  58. package/lib/commonjs/sharedTypes/index.js +11 -0
  59. package/lib/commonjs/sharedTypes/index.js.map +1 -1
  60. package/lib/commonjs/sharedTypes/onLoadResponse.types.js +0 -4
  61. package/lib/commonjs/sharedTypes/onLoadResponse.types.js.map +1 -1
  62. package/lib/commonjs/sharedTypes/transactions.types.js +52 -0
  63. package/lib/commonjs/sharedTypes/transactions.types.js.map +1 -0
  64. package/lib/commonjs/webComponent/WebComponent.js +35 -2
  65. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  66. package/lib/commonjs/webComponent/html.js +14 -1
  67. package/lib/commonjs/webComponent/html.js.map +1 -1
  68. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js +24 -1
  69. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
  70. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js +24 -1
  71. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
  72. package/lib/module/components/UNAccountComponent/UNAccountComponent.js +30 -5
  73. package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
  74. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +8 -0
  75. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
  76. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +33 -2
  77. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  78. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +6 -0
  79. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  80. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +18 -1
  81. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  82. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +7 -0
  83. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  84. package/lib/module/components/UNCardComponent/UNCardComponent.js +39 -5
  85. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
  86. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +6 -0
  87. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  88. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +88 -0
  89. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -0
  90. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +37 -0
  91. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -0
  92. package/lib/module/components/index.js +1 -0
  93. package/lib/module/components/index.js.map +1 -1
  94. package/lib/module/hooks/listenerToBus.js +4 -1
  95. package/lib/module/hooks/listenerToBus.js.map +1 -1
  96. package/lib/module/messages/webMessages/activityMessage.js +5 -0
  97. package/lib/module/messages/webMessages/activityMessage.js.map +1 -0
  98. package/lib/module/messages/webMessages/cardMessage.js +1 -0
  99. package/lib/module/messages/webMessages/cardMessage.js.map +1 -1
  100. package/lib/module/messages/webMessages/checkMessage.js +6 -0
  101. package/lib/module/messages/webMessages/checkMessage.js.map +1 -0
  102. package/lib/module/messages/webMessages/index.js.map +1 -1
  103. package/lib/module/messages/webMessages/onLoadMessage.js +10 -0
  104. package/lib/module/messages/webMessages/onLoadMessage.js.map +1 -0
  105. package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
  106. package/lib/module/scripts/html/bodyScript.js +37 -0
  107. package/lib/module/scripts/html/bodyScript.js.map +1 -1
  108. package/lib/module/sharedTypes/account.types.js +6 -0
  109. package/lib/module/sharedTypes/account.types.js.map +1 -1
  110. package/lib/module/sharedTypes/achCredit.types.js.map +1 -1
  111. package/lib/module/sharedTypes/activity.types.js +2 -0
  112. package/lib/module/sharedTypes/activity.types.js.map +1 -0
  113. package/lib/module/sharedTypes/authorization.types.js +2 -0
  114. package/lib/module/sharedTypes/authorization.types.js.map +1 -0
  115. package/lib/module/sharedTypes/card.types.js +13 -1
  116. package/lib/module/sharedTypes/card.types.js.map +1 -1
  117. package/lib/module/sharedTypes/checkDeposit.types.js +15 -0
  118. package/lib/module/sharedTypes/checkDeposit.types.js.map +1 -0
  119. package/lib/module/sharedTypes/index.js +2 -1
  120. package/lib/module/sharedTypes/index.js.map +1 -1
  121. package/lib/module/sharedTypes/onLoadResponse.types.js +1 -1
  122. package/lib/module/sharedTypes/onLoadResponse.types.js.map +1 -1
  123. package/lib/module/sharedTypes/transactions.types.js +44 -0
  124. package/lib/module/sharedTypes/transactions.types.js.map +1 -0
  125. package/lib/module/webComponent/WebComponent.js +34 -2
  126. package/lib/module/webComponent/WebComponent.js.map +1 -1
  127. package/lib/module/webComponent/html.js +15 -2
  128. package/lib/module/webComponent/html.js.map +1 -1
  129. package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.d.ts +2 -2
  130. package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.d.ts +2 -2
  131. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +11 -3
  132. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +3 -0
  133. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +5 -2
  134. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +1 -0
  135. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -2
  136. package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +9 -3
  137. package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +3 -0
  138. package/lib/typescript/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts +12 -0
  139. package/lib/typescript/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.d.ts +3 -0
  140. package/lib/typescript/components/index.d.ts +1 -0
  141. package/lib/typescript/messages/webMessages/activityMessage.d.ts +5 -0
  142. package/lib/typescript/messages/webMessages/cardMessage.d.ts +5 -1
  143. package/lib/typescript/messages/webMessages/checkMessage.d.ts +8 -0
  144. package/lib/typescript/messages/webMessages/index.d.ts +4 -2
  145. package/lib/typescript/messages/webMessages/onLoadMessage.d.ts +30 -0
  146. package/lib/typescript/messages/webMessages/unitMessages.d.ts +2 -2
  147. package/lib/typescript/scripts/html/bodyScript.d.ts +6 -0
  148. package/lib/typescript/sharedTypes/account.types.d.ts +18 -4
  149. package/lib/typescript/sharedTypes/achCredit.types.d.ts +6 -0
  150. package/lib/typescript/sharedTypes/activity.types.d.ts +7 -0
  151. package/lib/typescript/sharedTypes/authorization.types.d.ts +20 -0
  152. package/lib/typescript/sharedTypes/card.types.d.ts +12 -0
  153. package/lib/typescript/sharedTypes/checkDeposit.types.d.ts +46 -0
  154. package/lib/typescript/sharedTypes/index.d.ts +2 -1
  155. package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +12 -16
  156. package/lib/typescript/sharedTypes/transactions.types.d.ts +80 -0
  157. package/lib/typescript/webComponent/WebComponent.d.ts +1 -0
  158. package/package.json +3 -3
  159. package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +30 -3
  160. package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +30 -3
  161. package/src/components/UNAccountComponent/UNAccountComponent.tsx +52 -9
  162. package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +11 -0
  163. package/src/components/UNActivityComponent/UNActivityComponent.tsx +45 -4
  164. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +7 -0
  165. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +24 -3
  166. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +8 -1
  167. package/src/components/UNCardComponent/UNCardComponent.tsx +51 -7
  168. package/src/components/UNCardComponent/UNCardComponent.utils.ts +9 -0
  169. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +112 -0
  170. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.ts +40 -0
  171. package/src/components/index.ts +1 -0
  172. package/src/hooks/listenerToBus.ts +4 -1
  173. package/src/messages/webMessages/activityMessage.ts +8 -0
  174. package/src/messages/webMessages/cardMessage.ts +6 -0
  175. package/src/messages/webMessages/checkMessage.ts +14 -0
  176. package/src/messages/webMessages/index.ts +6 -0
  177. package/src/messages/webMessages/onLoadMessage.ts +45 -0
  178. package/src/messages/webMessages/unitMessages.ts +2 -2
  179. package/src/scripts/html/bodyScript.ts +42 -1
  180. package/src/sharedTypes/account.types.ts +33 -19
  181. package/src/sharedTypes/achCredit.types.ts +7 -0
  182. package/src/sharedTypes/activity.types.ts +8 -0
  183. package/src/sharedTypes/authorization.types.ts +22 -0
  184. package/src/sharedTypes/card.types.ts +13 -0
  185. package/src/sharedTypes/checkDeposit.types.ts +50 -0
  186. package/src/sharedTypes/index.ts +2 -1
  187. package/src/sharedTypes/onLoadResponse.types.ts +15 -23
  188. package/src/sharedTypes/transactions.types.ts +84 -0
  189. package/src/webComponent/WebComponent.tsx +36 -2
  190. package/src/webComponent/html.ts +15 -2
  191. package/android/src/main/res/values/themes.xml +0 -16
  192. package/android/src/main/res/values-night/themes.xml +0 -16
@@ -5,19 +5,29 @@ import { useListenerToBus } from '../../hooks/listenerToBus';
5
5
  import type { WebViewMessage } from '../../messages/webMessages';
6
6
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
7
7
  import { PresentationMode } from '../../scripts/html/bodyHtml';
8
- import type { UNResponseUnitOnLoadEvent } from '../../sharedTypes';
8
+ import type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';
9
9
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
10
- import { getActivityParams, getActivityScript, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';
10
+ import { getActivityParams, getActivityScript, injectFiltersChanged, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';
11
11
  import type WebView from 'react-native-webview';
12
12
  import type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';
13
13
  import EventBus from '../../helpers/EventBus';
14
+ import type { UNActivityOnLoadData } from '../../sharedTypes/activity.types';
15
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
16
+ import { ActivityMessage } from '../../messages/webMessages/activityMessage';
14
17
 
15
18
  const DEFAULT_HEIGHT = Dimensions.get('window').height * 0.5;
16
19
  export interface UNActivityComponentProps {
20
+ // inputs
17
21
  accountId: string;
18
22
  customerToken: string;
23
+ queryFilter?: string
24
+
25
+ // ui
19
26
  theme?: string;
20
- onLoad?: (response: UNResponseUnitOnLoadEvent) => void
27
+ hideFilterButton?: boolean;
28
+
29
+ // event
30
+ onLoad?: (response: UNOnLoadResponse<UNActivityOnLoadData>) => void;
21
31
  }
22
32
 
23
33
  export const UNActivityComponent = (props: UNActivityComponentProps) => {
@@ -28,7 +38,38 @@ export const UNActivityComponent = (props: UNActivityComponentProps) => {
28
38
  injectRefreshEventIfNeeded(webRef.current, data);
29
39
  };
30
40
 
41
+ const dispatchActivityFiltersChanged = (query: string) => {
42
+ injectFiltersChanged(webRef.current, query);
43
+ };
44
+
31
45
  useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });
46
+ useListenerToBus({ busEventKey: ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, action: dispatchActivityFiltersChanged});
47
+
48
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
49
+ if (!props.onLoad) {
50
+ return;
51
+ }
52
+
53
+ if (RESPONSE_KEYS.errors in response) {
54
+ props.onLoad(response as UNError);
55
+ return;
56
+ }
57
+
58
+ if (RESPONSE_KEYS.authorization in response && RESPONSE_KEYS.transactions in response) {
59
+ // ActivityOnLoadResponse;
60
+ const activityOnLoad: UNOnLoadResponseData<UNActivityOnLoadData> = {
61
+ data: {
62
+ [RESPONSE_KEYS.authorization]: response[RESPONSE_KEYS.authorization].data,
63
+ [RESPONSE_KEYS.transactions]: response[RESPONSE_KEYS.transactions].data
64
+ }
65
+ };
66
+ props.onLoad(activityOnLoad);
67
+ return;
68
+ }
69
+
70
+ console.error('On Load Error: unexpected response type');
71
+ return;
72
+ };
32
73
 
33
74
  const handleWebViewMessage = (message: WebViewMessage) => {
34
75
  switch (message.type) {
@@ -42,7 +83,7 @@ export const UNActivityComponent = (props: UNActivityComponentProps) => {
42
83
  break;
43
84
  }
44
85
  case UnitMessage.UNIT_ON_LOAD:
45
- props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);
86
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
46
87
  break;
47
88
  case PageMessage.PAGE_HEIGHT: {
48
89
  const currentHeight = (message.details as HeightEvent).height;
@@ -5,9 +5,12 @@ import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';
5
5
  import type { UNActivityComponentProps } from './UNActivityComponent';
6
6
 
7
7
  export const getActivityParams = (props: UNActivityComponentProps) => {
8
+ const queryFilterParam = props.queryFilter ? `query-filter="${props.queryFilter}"` : '';
8
9
  return `
9
10
  account-id="${props.accountId}"
10
11
  customer-token="${props.customerToken}"
12
+ hide-filter-button="${props.hideFilterButton || false}"
13
+ ${queryFilterParam}
11
14
  style="height: 100%"
12
15
  `;
13
16
  };
@@ -21,3 +24,7 @@ export const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRe
21
24
  currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
22
25
  }
23
26
  };
27
+
28
+ export const injectFiltersChanged = (currentWeb: WebView | null, query: string) => {
29
+ currentWeb?.injectJavaScript(`dispatchActivityFilterChangedEvent('${query}')`);
30
+ };
@@ -3,12 +3,13 @@ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent'
3
3
  import { PresentationMode } from '../../scripts/html/bodyHtml';
4
4
  import { getBookPaymentParams, getBookPaymentScript } from './UNBookPaymentComponent.utils';
5
5
  import type { WebViewMessage } from '../../messages/webMessages';
6
- import type { UNResponseUnitOnLoadEvent, UNBookPaymentData } from '../../sharedTypes';
6
+ import type { UNOnLoadResponse, UNBookPaymentData, UNError, UNAccountData, UNOnLoadResponseData } from '../../sharedTypes';
7
7
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
8
8
  import { View } from 'react-native';
9
9
  import { UnitMessage } from '../../messages/webMessages/unitMessages';
10
10
  import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
11
11
  import type { BookPaymentEvent } from '../../messages/webMessages/bookPaymentMessage';
12
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
12
13
 
13
14
  export interface UNBookPaymentComponentProps {
14
15
  accountId: string;
@@ -18,13 +19,33 @@ export interface UNBookPaymentComponentProps {
18
19
  counterPartyName: string;
19
20
  theme?: string;
20
21
  onPaymentCreated?: (data: UNBookPaymentData) => void;
21
- onLoad?: (response: UNResponseUnitOnLoadEvent) => void;
22
+ onLoad?: (response: UNOnLoadResponse<UNAccountData>) => void;
22
23
  }
23
24
 
24
25
  export const UNBookPaymentComponent = (props: UNBookPaymentComponentProps) => {
25
26
  const [height, setHeight] = useState<number>(0);
26
27
  const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);
27
28
 
29
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
30
+ if (!props.onLoad) {
31
+ return;
32
+ }
33
+
34
+ if (RESPONSE_KEYS.errors in response) {
35
+ props.onLoad(response as UNError);
36
+ return;
37
+ }
38
+
39
+ if (RESPONSE_KEYS.account in response) {
40
+ // AccountOnLoadResponse;
41
+ props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<UNAccountData>);
42
+ return;
43
+ }
44
+
45
+ console.error('On Load Error: unexpected response type');
46
+ return;
47
+ };
48
+
28
49
  const handleWebViewMessage = (message: WebViewMessage) => {
29
50
  if (!message || !message.details) return;
30
51
 
@@ -33,7 +54,7 @@ export const UNBookPaymentComponent = (props: UNBookPaymentComponentProps) => {
33
54
  props.onPaymentCreated && props.onPaymentCreated((message.details as BookPaymentEvent).data);
34
55
  break;
35
56
  case UnitMessage.UNIT_ON_LOAD:
36
- props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);
57
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
37
58
  break;
38
59
  case PageMessage.PAGE_HEIGHT: {
39
60
  const currentHeight = (message.details as HeightEvent).height;
@@ -7,7 +7,7 @@ import BottomSheet from '../../helpers/BottomSheet/BottomSheet';
7
7
  import EventBus from '../../helpers/EventBus';
8
8
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
9
9
  import { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
10
- import { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';
10
+ import { CardMessage, CardActivatedEvent, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';
11
11
  import { useListenerToBus } from '../../hooks/listenerToBus';
12
12
  import type { WebViewMessage } from '../../messages/webMessages';
13
13
  import {
@@ -24,6 +24,7 @@ import { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.u
24
24
  import { AccountAction } from '../UNAccountComponent/UNAccountComponent';
25
25
  import type { AccountChangedEvent } from '../../messages/webMessages/accountMessage';
26
26
  import { AccountMessage } from '../../messages/webMessages/accountMessage';
27
+ import { ActivityFiltersChangedEvent, ActivityMessage } from '../../messages/webMessages/activityMessage';
27
28
 
28
29
  export enum ScrollState {
29
30
  /*
@@ -174,12 +175,18 @@ export const UNBottomSheetComponent = () => {
174
175
  }
175
176
  break;
176
177
  }
178
+ case CardMessage.CARD_ACTIVATED:
179
+ EventBus.Instance.event(CardMessage.CARD_ACTIVATED, (message.details as CardActivatedEvent).card);
180
+ break;
177
181
  case CardMessage.CARD_STATUS_CHANGED:
178
182
  EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);
179
183
  break;
180
184
  case AccountMessage.UNIT_ACCOUNT_CHANGED:
181
185
  EventBus.Instance.event(AccountMessage.UNIT_ACCOUNT_CHANGED, (message.details as AccountChangedEvent).account);
182
186
  break;
187
+ case ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED:
188
+ EventBus.Instance.event(ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, (message.details as ActivityFiltersChangedEvent));
189
+ break;
183
190
  case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
184
191
  handleCloseFlow();
185
192
  break;
@@ -1,4 +1,4 @@
1
- import React, { useRef, useState } from 'react';
1
+ import React, { useImperativeHandle, useRef, useState } from 'react';
2
2
  import { Dimensions, NativeModule, View } from 'react-native';
3
3
  import type WebView from 'react-native-webview';
4
4
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
@@ -7,31 +7,39 @@ import EventBus from '../../helpers/EventBus';
7
7
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
8
8
  import { useListenerToBus } from '../../hooks/listenerToBus';
9
9
  import type { WebViewMessage } from '../../messages/webMessages';
10
- import { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';
10
+ import { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning, injectOpenActionsMenuScript, injectRequestCardActionScript } from './UNCardComponent.utils';
11
11
  import { PresentationMode } from '../../scripts/html/bodyHtml';
12
- import type { UNResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';
12
+ import type { UNOnLoadResponse, UNCardData, UNError, UNCardMenuAction } from '../../sharedTypes';
13
13
  import { CardMessage } from '../../messages/webMessages/cardMessage';
14
14
  import { launchGetWallets } from './UNCardComponent.utils';
15
15
  import type { NativeModules } from 'react-native';
16
16
  import type { UNWallet } from 'src/sharedTypes/wallet.types';
17
17
  import { CardAddToWalletErrors, UNCardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';
18
18
  import type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';
19
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
19
20
  export interface UNCardComponentProps {
20
21
  // inputs
21
22
  cardId: string;
22
23
  customerToken: string;
24
+
25
+ // ui
23
26
  theme?: string;
24
27
  hideActionsMenuButton?: boolean;
25
28
  hideCardTitle?: boolean;
26
29
  hideSensitiveDataButton?: boolean;
27
30
 
28
31
  // events
29
- onLoad?: (response: UNResponseUnitOnLoadEvent) => void
32
+ onLoad?: (response: UNOnLoadResponse<UNCardData>) => void
30
33
  onStatusChanged?: (card: UNCardData) => void;
34
+ onCardActivated?: (card: UNCardData) => void;
31
35
  pushProvisioningModule?: typeof NativeModules;
32
36
  }
37
+ export interface CardRef {
38
+ openActionsMenu: () => void;
39
+ openAction:(action: UNCardMenuAction) => void;
40
+ }
33
41
 
34
- export const UNCardComponent = (props: UNCardComponentProps) => {
42
+ export const UNCardComponent = React.forwardRef<CardRef, UNCardComponentProps>(function UNCardComponent (props, cardRef) {
35
43
  const [height, setHeight] = useState(0);
36
44
  const windowWidth = Dimensions.get('window').width;
37
45
 
@@ -41,12 +49,27 @@ export const UNCardComponent = (props: UNCardComponentProps) => {
41
49
 
42
50
  const webRef = useRef<WebView>(null);
43
51
 
52
+ useImperativeHandle(cardRef, () => ({
53
+ openActionsMenu() {
54
+ injectOpenActionsMenuScript(webRef.current);
55
+ },
56
+ openAction(action: UNCardMenuAction) {
57
+ injectRequestCardActionScript(webRef.current, action);
58
+ }
59
+ }));
60
+
44
61
  const cardStatusChanged = (card: UNCardData) => {
45
62
  if (props.onStatusChanged) {
46
63
  props.onStatusChanged(card);
47
64
  }
48
65
  };
49
66
 
67
+ const cardActivated = (card: UNCardData) => {
68
+ if (props.onCardActivated) {
69
+ props.onCardActivated(card);
70
+ }
71
+ };
72
+
50
73
  const requestRefresh = (data: RequestRefreshEvent) => {
51
74
  injectRefreshEventIfNeeded(webRef.current, data, props.cardId);
52
75
  };
@@ -61,8 +84,29 @@ export const UNCardComponent = (props: UNCardComponentProps) => {
61
84
  getWallets();
62
85
  };
63
86
 
87
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
88
+ if (!props.onLoad) {
89
+ return;
90
+ }
91
+
92
+ if (RESPONSE_KEYS.errors in response) {
93
+ props.onLoad(response as UNError);
94
+ return;
95
+ }
96
+
97
+ if (RESPONSE_KEYS.card in response) {
98
+ // CardOnLoadResponse
99
+ props.onLoad(response[RESPONSE_KEYS.card] as UNOnLoadResponse<UNCardData>);
100
+ return;
101
+ }
102
+
103
+ console.error('On Load Error: unexpected response type');
104
+ return;
105
+ };
106
+
64
107
  useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });
65
108
  useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });
109
+ useListenerToBus({ busEventKey: CardMessage.CARD_ACTIVATED, action: cardActivated });
66
110
  useListenerToBus({ busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning });
67
111
  useListenerToBus({ busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus });
68
112
 
@@ -83,7 +127,7 @@ export const UNCardComponent = (props: UNCardComponentProps) => {
83
127
  setHeight((message.details as HeightEvent).height);
84
128
  break;
85
129
  case UnitMessage.UNIT_ON_LOAD:
86
- props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);
130
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
87
131
  break;
88
132
  }
89
133
  };
@@ -132,4 +176,4 @@ export const UNCardComponent = (props: UNCardComponentProps) => {
132
176
  />
133
177
  </View>
134
178
  );
135
- };
179
+ });
@@ -7,6 +7,7 @@ import { getMobileWalletPayload } from './networking/requests/UNWalletPayloadReq
7
7
  import { UNWallet, UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';
8
8
  import type { RequestRefreshEvent } from '../../messages/webMessages/unitMessages';
9
9
  import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
10
+ import type { UNCardMenuAction } from '../../sharedTypes';
10
11
 
11
12
  export const getCardParams = (props: UNCardComponentProps) => {
12
13
  return `
@@ -23,6 +24,14 @@ export const getCardScript = () => {
23
24
  return DISPATCH_REQUEST_REFRESH;
24
25
  };
25
26
 
27
+ export const injectOpenActionsMenuScript = (currentWeb: WebView | null) => {
28
+ currentWeb?.injectJavaScript(`dispatchOpenActionsMenu('${WebComponentType.card}')`);
29
+ };
30
+
31
+ export const injectRequestCardActionScript = (currentWeb: WebView | null, action: UNCardMenuAction) => {
32
+ currentWeb?.injectJavaScript(`dispatchRequestCardAction('${action}')`);
33
+ };
34
+
26
35
  export const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {
27
36
  if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {
28
37
  currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
@@ -0,0 +1,112 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { View, NativeModules, Platform } from 'react-native';
3
+ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
4
+ import { PresentationMode } from '../../scripts/html/bodyHtml';
5
+ import type { WebViewMessage } from '../../messages/webMessages';
6
+ import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
7
+ import { UnitMessage } from '../../messages/webMessages/unitMessages';
8
+ import { getCheckDepositParams, getCheckDepositScript } from './UNCheckDepositComponent.utils';
9
+ import { CheckMessage } from '../../messages/webMessages/checkMessage';
10
+ import type { UNCheckDepositData } from '../../sharedTypes/checkDeposit.types';
11
+ import type { UNAccountData, UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';
12
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
13
+
14
+ const { Camera } = NativeModules;
15
+
16
+ export interface UNCheckDepositComponentProps {
17
+ accountId: string;
18
+ fee: number;
19
+ customerToken: string;
20
+ theme?: string;
21
+ onLoad?: (response: UNOnLoadResponse<UNAccountData>) => void;
22
+ onDepositCreated?: (checkData: UNCheckDepositData) => void
23
+ onRestartRequest?: (checkData: UNCheckDepositData) => void
24
+ }
25
+
26
+ export const UNCheckDepositComponent = (props: UNCheckDepositComponentProps) => {
27
+ const [height, setHeight] = useState<number>(0);
28
+ const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);
29
+
30
+ useEffect(() => {
31
+ const requestCameraAccess = async () => {
32
+ try {
33
+ await Camera.requestAccess();
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ } catch (error: any) {
36
+ console.error(error);
37
+ }
38
+ };
39
+
40
+ if (Platform.OS == 'ios') {
41
+ requestCameraAccess();
42
+ }
43
+ }, []);
44
+
45
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
46
+ if (!props.onLoad) {
47
+ return;
48
+ }
49
+
50
+ if (RESPONSE_KEYS.errors in response) {
51
+ props.onLoad(response as UNError);
52
+ return;
53
+ }
54
+
55
+ if (RESPONSE_KEYS.account in response) {
56
+ // AccountOnLoadResponse;
57
+ props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<UNAccountData>);
58
+ return;
59
+ }
60
+
61
+ console.error('On Load Error: unexpected response type');
62
+ return;
63
+ };
64
+
65
+ const handleWebViewMessage = (message: WebViewMessage) => {
66
+ if (!message || !message.details) return;
67
+
68
+ switch (message.type) {
69
+ case CheckMessage.CHECK_DEPOSIT_CREATED:
70
+ props.onDepositCreated && props.onDepositCreated(message.details as UNCheckDepositData);
71
+ break;
72
+ case CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST:
73
+ props.onRestartRequest && props.onRestartRequest(message.details as UNCheckDepositData);
74
+ break;
75
+ case UnitMessage.UNIT_ON_LOAD:
76
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
77
+ break;
78
+ case PageMessage.PAGE_HEIGHT: {
79
+ const currentHeight = (message.details as HeightEvent).height;
80
+ setHeight(currentHeight);
81
+ if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {
82
+ setPresentationMode(PresentationMode.Default);
83
+ }
84
+ break;
85
+ }
86
+ }
87
+ };
88
+
89
+ const renderBookPaymentWebView = () => {
90
+ return (
91
+ <WebComponent
92
+ type={WebComponentType.checkDeposit}
93
+ presentationMode={presentationMode}
94
+ params={getCheckDepositParams(props)}
95
+ script={getCheckDepositScript()}
96
+ onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
97
+ theme={props.theme}
98
+ isScrollable={true}
99
+ />
100
+ );
101
+ };
102
+
103
+ if (presentationMode === PresentationMode.Inherit) {
104
+ return renderBookPaymentWebView();
105
+ }
106
+
107
+ return (
108
+ <View style={{ height: height }}>
109
+ {renderBookPaymentWebView()}
110
+ </View>
111
+ );
112
+ };
@@ -0,0 +1,40 @@
1
+ import { CheckMessage } from '../../messages/webMessages/checkMessage';
2
+ import type { UNCheckDepositComponentProps } from './UNCheckDepositComponent';
3
+
4
+ export const getCheckDepositParams = (props: UNCheckDepositComponentProps) => {
5
+ return `
6
+ account-id="${props.accountId}"
7
+ fee="${props.fee}"
8
+ customer-token="${props.customerToken}"
9
+ `;
10
+ };
11
+
12
+ const CHECK_DEPOSIT_LISTENERS = {
13
+ paymentCreated: `
14
+ window.addEventListener("${CheckMessage.CHECK_DEPOSIT_CREATED}", (e) => {
15
+ const response = e.detail
16
+ response.then((data) => {
17
+ postMessageToSDK({ type: "${CheckMessage.CHECK_DEPOSIT_CREATED}", details: data.data })
18
+ }).catch((e) => {
19
+ console.log(e)
20
+ })
21
+ });
22
+ `,
23
+ restartRequest: `
24
+ window.addEventListener("${CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST}", (e) => {
25
+ const response = e.detail
26
+ response.then((data) => {
27
+ postMessageToSDK({ type: "${CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST}", details: data.data })
28
+ }).catch((e) => {
29
+ console.log(e)
30
+ })
31
+ });
32
+ `
33
+ };
34
+
35
+ export const getCheckDepositScript = () => {
36
+ return `
37
+ ${CHECK_DEPOSIT_LISTENERS.paymentCreated}
38
+ ${CHECK_DEPOSIT_LISTENERS.restartRequest}
39
+ `;
40
+ };
@@ -3,5 +3,6 @@ export * from './UNBottomSheetComponent/UNBottomSheetComponent';
3
3
  export * from './UNBookPaymentComponent/UNBookPaymentComponent';
4
4
  export * from './UNActivityComponent/UNActivityComponent';
5
5
  export * from './UNAccountComponent/UNAccountComponent';
6
+ export * from './UNCheckDepositComponent/UNCheckDepositComponent';
6
7
  export * from './UNACHDebitComponent/UNACHDebitComponent';
7
8
  export * from './UNACHCreditComponent/UNACHCreditComponent';
@@ -23,6 +23,9 @@ export const useListenerToBus = (listener: Listener) => {
23
23
 
24
24
  // Call to action when event is changed. (To be updated with the current props).
25
25
  useEffect(() => {
26
- eventData && listener.action(eventData);
26
+ if (eventData == null || eventData == undefined) {
27
+ return;
28
+ }
29
+ listener.action(eventData);
27
30
  }, [eventData]);
28
31
  };
@@ -0,0 +1,8 @@
1
+ export enum ActivityMessage {
2
+ UNIT_ACTIVITY_FILTERS_CHANGED = 'unitActivityFiltersChanged'
3
+ }
4
+
5
+ export type ActivityFiltersChangedEvent = string
6
+
7
+ export type ActivityEvent =
8
+ | ActivityFiltersChangedEvent
@@ -1,6 +1,7 @@
1
1
  import type { UNCardData } from '../../sharedTypes';
2
2
 
3
3
  export enum CardMessage {
4
+ CARD_ACTIVATED = 'unitCardActivated',
4
5
  CARD_STATUS_CHANGED = 'unitCardStatusChanged'
5
6
  }
6
7
 
@@ -8,5 +9,10 @@ export interface CardStatusChangedEvent {
8
9
  card: UNCardData;
9
10
  }
10
11
 
12
+ export interface CardActivatedEvent {
13
+ card: UNCardData;
14
+ }
15
+
11
16
  export type CardEvent =
12
17
  | CardStatusChangedEvent
18
+ | CardActivatedEvent
@@ -0,0 +1,14 @@
1
+ import type { UNCheckDepositData } from '../../sharedTypes/checkDeposit.types';
2
+
3
+ export enum CheckMessage {
4
+ // check deposit
5
+ CHECK_DEPOSIT_CREATED = 'unitCheckDepositCreated',
6
+ CHECK_DEPOSIT_RESTART_REQUEST = 'unitCheckDepositRestartRequest'
7
+ }
8
+
9
+ export type CheckDepositCreatedEvent = UNCheckDepositData
10
+ export type CheckDepositRestartRequestEvent = UNCheckDepositData
11
+
12
+ export type CheckEvent =
13
+ | CheckDepositCreatedEvent
14
+ | CheckDepositRestartRequestEvent
@@ -6,6 +6,8 @@ import type { PageEvent, PageMessage } from './pageMessage';
6
6
  import type { PaymentMessage } from './paymentsMessage';
7
7
  import type { UnitEvent, UnitMessage } from './unitMessages';
8
8
  import type { AccountEvent, AccountMessage } from './accountMessage';
9
+ import type { CheckEvent, CheckMessage } from './checkMessage';
10
+ import type { ActivityEvent, ActivityMessage } from './activityMessage';
9
11
 
10
12
  export type WebViewMessageType =
11
13
  | PageMessage
@@ -13,6 +15,8 @@ export type WebViewMessageType =
13
15
  | UnitMessage
14
16
  | PaymentMessage
15
17
  | AccountMessage
18
+ | CheckMessage
19
+ | ActivityMessage
16
20
 
17
21
  type WebViewEvent =
18
22
  | PageEvent
@@ -22,6 +26,8 @@ type WebViewEvent =
22
26
  | PaymentMessage
23
27
  | ACHEvent
24
28
  | AccountEvent
29
+ | CheckEvent
30
+ | ActivityEvent
25
31
 
26
32
  export interface WebViewMessage {
27
33
  type: WebViewMessageType,
@@ -0,0 +1,45 @@
1
+ import type {UNAccountData, UNCounterpartyAccountData, UNCardData, UNError, UNOnLoadResponseData } from '../../sharedTypes';
2
+ import type { UNAuthorizationData } from '../../sharedTypes/authorization.types';
3
+ import type { UNTransactionData } from '../../sharedTypes/transactions.types';
4
+
5
+ export enum RESPONSE_KEYS {
6
+ errors = 'errors',
7
+ card = 'cardResult',
8
+ account = 'accountResult',
9
+ counterpartyAccount = 'counterpartyResult',
10
+ transactions = 'transactionsResult',
11
+ authorization = 'authorizationResult'
12
+ }
13
+
14
+ export type CardOnLoadResponse = {
15
+ [RESPONSE_KEYS.card]: UNOnLoadResponseData<UNCardData>
16
+ }
17
+
18
+ export type AccountOnLoadResponse = {
19
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<UNAccountData>
20
+ }
21
+
22
+ export type AccountsOnLoadResponse = {
23
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<[UNAccountData]>
24
+ }
25
+
26
+ export type ACHOnLoadResponse = {
27
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<UNAccountData>,
28
+ [RESPONSE_KEYS.counterpartyAccount]: UNOnLoadResponseData<[UNCounterpartyAccountData]>
29
+ }
30
+
31
+ export type ActivityOnLoadResponse = {
32
+ [RESPONSE_KEYS.authorization]: UNOnLoadResponseData<UNAuthorizationData>,
33
+ [RESPONSE_KEYS.transactions]: UNOnLoadResponseData<UNTransactionData>
34
+ }
35
+
36
+ export type UnitOnLoadResponseSuccessData =
37
+ | CardOnLoadResponse
38
+ | ACHOnLoadResponse
39
+ | AccountsOnLoadResponse
40
+ | AccountOnLoadResponse
41
+ | ActivityOnLoadResponse
42
+
43
+ export type UnitOnLoadResponseEvent =
44
+ | UNError
45
+ | UnitOnLoadResponseSuccessData
@@ -1,4 +1,4 @@
1
- import type { UNResponseUnitOnLoadEvent } from '../../sharedTypes';
1
+ import type { UnitOnLoadResponseEvent } from './onLoadMessage';
2
2
 
3
3
  export enum UnitMessage {
4
4
  UNIT_REQUEST_RENDERING = 'unitRequestRendering',
@@ -63,7 +63,7 @@ export type UnitEvent =
63
63
  | RequestRenderingEvent
64
64
  | RequestRefreshEvent
65
65
  | RequestOpenLinkEvent
66
- | UNResponseUnitOnLoadEvent
66
+ | UnitOnLoadResponseEvent
67
67
  | RequestDownloadEvent
68
68
  | PlaidTokenCreatedEvent
69
69
  | RequestExternalSdkEvent