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
@@ -0,0 +1,30 @@
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
+ export declare enum RESPONSE_KEYS {
5
+ errors = "errors",
6
+ card = "cardResult",
7
+ account = "accountResult",
8
+ counterpartyAccount = "counterpartyResult",
9
+ transactions = "transactionsResult",
10
+ authorization = "authorizationResult"
11
+ }
12
+ export type CardOnLoadResponse = {
13
+ [RESPONSE_KEYS.card]: UNOnLoadResponseData<UNCardData>;
14
+ };
15
+ export type AccountOnLoadResponse = {
16
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<UNAccountData>;
17
+ };
18
+ export type AccountsOnLoadResponse = {
19
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<[UNAccountData]>;
20
+ };
21
+ export type ACHOnLoadResponse = {
22
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<UNAccountData>;
23
+ [RESPONSE_KEYS.counterpartyAccount]: UNOnLoadResponseData<[UNCounterpartyAccountData]>;
24
+ };
25
+ export type ActivityOnLoadResponse = {
26
+ [RESPONSE_KEYS.authorization]: UNOnLoadResponseData<UNAuthorizationData>;
27
+ [RESPONSE_KEYS.transactions]: UNOnLoadResponseData<UNTransactionData>;
28
+ };
29
+ export type UnitOnLoadResponseSuccessData = CardOnLoadResponse | ACHOnLoadResponse | AccountsOnLoadResponse | AccountOnLoadResponse | ActivityOnLoadResponse;
30
+ export type UnitOnLoadResponseEvent = UNError | UnitOnLoadResponseSuccessData;
@@ -1,4 +1,4 @@
1
- import type { UNResponseUnitOnLoadEvent } from '../../sharedTypes';
1
+ import type { UnitOnLoadResponseEvent } from './onLoadMessage';
2
2
  export declare enum UnitMessage {
3
3
  UNIT_REQUEST_RENDERING = "unitRequestRendering",
4
4
  UNIT_REQUEST_REFRESH = "unitRequestRefresh",
@@ -48,5 +48,5 @@ interface PlaidLinkTokenAttributes {
48
48
  export interface RequestExternalSdkEvent {
49
49
  type: string;
50
50
  }
51
- export type UnitEvent = RequestRenderingEvent | RequestRefreshEvent | RequestOpenLinkEvent | UNResponseUnitOnLoadEvent | RequestDownloadEvent | PlaidTokenCreatedEvent | RequestExternalSdkEvent;
51
+ export type UnitEvent = RequestRenderingEvent | RequestRefreshEvent | RequestOpenLinkEvent | UnitOnLoadResponseEvent | RequestDownloadEvent | PlaidTokenCreatedEvent | RequestExternalSdkEvent;
52
52
  export {};
@@ -8,11 +8,17 @@ export declare const LISTENERS: {
8
8
  requestCloseFlow: string;
9
9
  requestOpenLink: string;
10
10
  unitRequestDownload: string;
11
+ cardActivated: string;
11
12
  cardStatusChange: string;
12
13
  unitRequestExternalSdk: string;
13
14
  unitPaymentCreated: string;
14
15
  unitAccountChanged: string;
16
+ unitActivityFiltersChanged: string;
15
17
  };
16
18
  export declare const DISPATCH_RENDERING_EVENT: string;
17
19
  export declare const DISPATCH_REQUEST_REFRESH: string;
20
+ export declare const DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT: string;
18
21
  export declare const DISPATCH_PLAID_RESPONSE: string;
22
+ export declare const DISPATCH_OPEN_ACTIONS_MENU = "\n const dispatchOpenActionsMenu = (componentName) => {\n document.querySelector(componentName).dispatchEvent(new CustomEvent(\"unitRequestOpenActionsMenu\"))\n }\n";
23
+ export declare const DISPATCH_REQUEST_CARD_ACTION = "\n const dispatchRequestCardAction = (action) => {\n document.querySelector(\"unit-elements-card\").dispatchEvent(new CustomEvent(\"unitRequestCardAction\", {detail: {action: action}}))\n }\n";
24
+ export declare const DISPATCH_REQUEST_ACCOUNT_ACTION = "\n const dispatchRequestAccountAction = (action) => {\n document.querySelector(\"unit-elements-account\").dispatchEvent(new CustomEvent(\"unitRequestAccountAction\", {detail: {action: action}}))\n }\n";
@@ -1,5 +1,14 @@
1
1
  import type { UNRelationship, UNTags } from './types';
2
2
  export type UNAccountData = UNDepositAccount | UNBatchAccount | UNCreditAccount;
3
+ export type UNCounterpartyAccountData = {
4
+ id: string;
5
+ attributes: {
6
+ name: string;
7
+ tags?: {
8
+ [key: string]: string;
9
+ };
10
+ };
11
+ };
3
12
  declare enum UNAccountStatus {
4
13
  Open = "Open",
5
14
  Closed = "Closed",
@@ -21,7 +30,7 @@ export declare enum UNFraudReason {
21
30
  }
22
31
  export type UNDepositAccount = {
23
32
  id: string;
24
- type: "depositAccount";
33
+ type: 'depositAccount';
25
34
  attributes: {
26
35
  createdAt: string;
27
36
  updatedAt?: string;
@@ -56,7 +65,7 @@ export type UNDepositAccount = {
56
65
  };
57
66
  export type UNBatchAccount = {
58
67
  id: string;
59
- type: "batchAccount";
68
+ type: 'batchAccount';
60
69
  attributes: {
61
70
  createdAt: Date;
62
71
  updatedAt?: Date;
@@ -70,7 +79,7 @@ export type UNBatchAccount = {
70
79
  reserve: number;
71
80
  available: number;
72
81
  currency: string;
73
- status: "Open" | "Closed";
82
+ status: 'Open' | 'Closed';
74
83
  closeReason?: string;
75
84
  fraudReason?: UNFraudReason;
76
85
  closeReasonText?: string;
@@ -85,7 +94,7 @@ export type UNBatchAccount = {
85
94
  };
86
95
  export type UNCreditAccount = {
87
96
  id: string;
88
- type: "creditAccount";
97
+ type: 'creditAccount';
89
98
  attributes: {
90
99
  createdAt: Date;
91
100
  updatedAt?: Date;
@@ -111,4 +120,9 @@ export type UNCreditAccount = {
111
120
  org: UNRelationship;
112
121
  };
113
122
  };
123
+ export declare enum UNAccountMenuAction {
124
+ OpenAccountDetails = "OpenAccountDetails",
125
+ OpenAccountStatements = "OpenAccountStatements",
126
+ DownloadBankVerificationLetter = "DownloadBankVerificationLetter"
127
+ }
114
128
  export {};
@@ -1,5 +1,11 @@
1
+ import type { RESPONSE_KEYS } from '../messages/webMessages/onLoadMessage';
2
+ import type { UNAccountData, UNCounterpartyAccountData } from './account.types';
1
3
  import type { UNAchCounterparty, UNCounterpartyVerificationMethod, UNPaymentStatus } from './payments.types';
2
4
  import type { UNTags, UNRelationship } from './types';
5
+ export type UNACHOnLoadData = {
6
+ [RESPONSE_KEYS.account]: UNAccountData;
7
+ [RESPONSE_KEYS.counterpartyAccount]: [UNCounterpartyAccountData];
8
+ };
3
9
  export type UNACHData = {
4
10
  type: 'achPayment';
5
11
  id: string;
@@ -0,0 +1,7 @@
1
+ import type { RESPONSE_KEYS } from '../messages/webMessages/onLoadMessage';
2
+ import type { UNAuthorizationData } from './authorization.types';
3
+ import type { UNTransactionData } from './transactions.types';
4
+ export type UNActivityOnLoadData = {
5
+ [RESPONSE_KEYS.authorization]: UNAuthorizationData;
6
+ [RESPONSE_KEYS.transactions]: UNTransactionData;
7
+ };
@@ -0,0 +1,20 @@
1
+ export type UNAuthorizationData = {
2
+ type: string;
3
+ id: string;
4
+ attributes: UNAuthorizationDetails;
5
+ };
6
+ export type UNAuthorizationDetails = {
7
+ cardNetwork: string;
8
+ createdAt: Date;
9
+ amount: string;
10
+ merchant?: UNAuthorizationMerchant;
11
+ cardLast4Digits: string;
12
+ recurring: boolean;
13
+ summary: string;
14
+ };
15
+ export type UNAuthorizationMerchant = {
16
+ name: string;
17
+ type: string;
18
+ category: string;
19
+ location?: string;
20
+ };
@@ -53,4 +53,16 @@ export type UNBusinessDebitCard = {
53
53
  customer: UNRelationship;
54
54
  };
55
55
  };
56
+ export declare enum UNCardMenuAction {
57
+ Freeze = "Freeze",
58
+ ManagePin = "ManagePin",
59
+ Replace = "Replace",
60
+ Report = "Report",
61
+ Close = "Close",
62
+ Activate = "Activate",
63
+ Unfreeze = "Unfreeze",
64
+ ChangePin = "ChangePin",
65
+ SetPin = "SetPin",
66
+ AddToWallet = "AddToWallet"
67
+ }
56
68
  export {};
@@ -0,0 +1,46 @@
1
+ import type { UNRelationship } from './types';
2
+ export type UNCheckDepositData = {
3
+ id: string;
4
+ type: string;
5
+ attributes: UNCheckDepositAttributes;
6
+ relationships: UNCheckDepositRelationships;
7
+ };
8
+ export type UNCheckDepositAttributes = {
9
+ createdAt: Date;
10
+ status: keyof typeof UNCheckDepositStatus;
11
+ reason?: string;
12
+ description: string;
13
+ amount: Cents;
14
+ checkNumber?: string;
15
+ counterparty: UNCheckCounterparty;
16
+ settlementDate?: Date;
17
+ tags?: {
18
+ [key: string]: string;
19
+ };
20
+ };
21
+ export type UNCheckDepositRelationships = {
22
+ account: UNRelationship;
23
+ customer?: UNRelationship;
24
+ customers?: UNRelationship;
25
+ org?: UNRelationship;
26
+ transaction?: UNRelationship;
27
+ };
28
+ export declare enum UNCheckDepositStatus {
29
+ AwaitingImages = "AwaitingImages",
30
+ AwaitingFrontImage = "AwaitingFrontImage",
31
+ AwaitingBackImage = "AwaitingBackImage",
32
+ PendingReview = "PendingReview",
33
+ AwaitingCustomerConfirmation = "AwaitingCustomerConfirmation",
34
+ Pending = "Pending",
35
+ Rejected = "Rejected",
36
+ Clearing = "Clearing",
37
+ Sent = "Sent",
38
+ Canceled = "Canceled",
39
+ Returned = "Returned"
40
+ }
41
+ export type Cents = number;
42
+ export type UNCheckCounterparty = {
43
+ name: string;
44
+ accountNumber: string;
45
+ routingNumber: string;
46
+ };
@@ -3,4 +3,5 @@ export * from './card.types';
3
3
  export * from './onLoadResponse.types';
4
4
  export * from './achCredit.types';
5
5
  export * from './payments.types';
6
- export * from "./account.types";
6
+ export * from './account.types';
7
+ export * from './checkDeposit.types';
@@ -1,18 +1,14 @@
1
- import type { UNCardData } from '../sharedTypes';
2
- export type UNSuccessResponseUnitOnLoad = {
3
- data: UNCardData | Object;
4
- included: [Object];
5
- errors: null;
1
+ export type UNOnLoadResponseData<T> = {
2
+ data: T;
6
3
  };
7
- export type UNErrorResponseUnitOnLoad = {
8
- errors: [
9
- {
10
- status: string;
11
- title: string;
12
- detail?: string;
13
- details?: string;
14
- meta?: Record<string, string>;
15
- }
16
- ];
4
+ export type UNError = {
5
+ errors: UNErrorData[];
17
6
  };
18
- export type UNResponseUnitOnLoadEvent = UNSuccessResponseUnitOnLoad | UNErrorResponseUnitOnLoad;
7
+ export type UNErrorData = {
8
+ status: string;
9
+ title: string;
10
+ detail?: string;
11
+ details?: string;
12
+ meta?: Record<string, string>;
13
+ };
14
+ export type UNOnLoadResponse<T> = UNOnLoadResponseData<T> | UNError;
@@ -0,0 +1,80 @@
1
+ export type UNTransactionData = {
2
+ type: UNTransactionType;
3
+ id: string;
4
+ attributes: UNATransactionAttributes;
5
+ relationships: UNTransactionRelationships;
6
+ };
7
+ export type UNATransactionAttributes = {
8
+ createdAt: Date;
9
+ amount: string;
10
+ direction?: UNDirection;
11
+ balance?: string;
12
+ summary?: string;
13
+ companyName?: string;
14
+ counterpartyName?: string;
15
+ counterpartyRoutingNumber?: string;
16
+ reason?: string;
17
+ };
18
+ export type UNTransactionRelationships = {
19
+ customer?: {
20
+ data: {
21
+ type: string;
22
+ id: number;
23
+ };
24
+ };
25
+ customers?: {
26
+ data: [
27
+ {
28
+ type: 'customer';
29
+ id: string;
30
+ }
31
+ ];
32
+ };
33
+ org?: {
34
+ data: {
35
+ type: string;
36
+ id: number;
37
+ };
38
+ };
39
+ };
40
+ export declare enum UNDirection {
41
+ Debit = "Debit",
42
+ Credit = "Credit"
43
+ }
44
+ export declare enum UNTransactionType {
45
+ ATM = "atmTransaction",
46
+ Adjustment = "adjustmentTransaction",
47
+ BillPay = "billPayTransaction",
48
+ Book = "bookTransaction",
49
+ Card = "cardTransaction",
50
+ CardReversal = "cardReverTransactionTypessalTransaction",
51
+ Chargeback = "chargebackTransaction",
52
+ CheckDeposit = "checkDepositTransaction",
53
+ DishonoredACH = "dishonoredAchTransaction",
54
+ Dispute = "disputeTransaction",
55
+ DisputeSettlement = "disputeSettlementTransaction",
56
+ Fee = "feeTransaction",
57
+ InterchangeShare = "interchangeShareTransaction",
58
+ Interest = "interestTransaction",
59
+ InterestShare = "interestShareTransaction",
60
+ NegativeBalanceCoverage = "negativeBalanceCoverageTransaction",
61
+ OriginatedACH = "originatedAchTransaction",
62
+ PaymentAdvance = "paymentAdvanceTransaction",
63
+ PaymentCanceled = "paymentCanceledTransaction",
64
+ Purchase = "purchaseTransaction",
65
+ ReceivedACH = "receivedAchTransaction",
66
+ Release = "releaseTransaction",
67
+ RepaidPaymentAdvance = "repaidPaymentAdvanceTransaction",
68
+ ReturnedACH = "returnedAchTransaction",
69
+ ReturnedCheckDeposit = "returnedCheckDepositTransaction",
70
+ ReturnedReceivedACH = "returnedReceivedAchTransaction",
71
+ Reward = "rewardTransaction",
72
+ Settlement = "settlementTransaction",
73
+ SponsoredInterest = "sponsoredInterestTransaction",
74
+ Wire = "wireTransaction",
75
+ AccountLowBalanceClosure = "accountLowBalanceClosureTransaction",
76
+ CashDeposit = "cashDepositTransaction",
77
+ BankRepayment = "bankRepaymentTransaction",
78
+ CustomerRepayment = "CustomerRepaymentTransaction",
79
+ CustomerRepaymentReturned = "CustomerRepaymentReturnedTransaction"
80
+ }
@@ -20,6 +20,7 @@ export declare enum WebComponentType {
20
20
  activity = "unit-elements-activity",
21
21
  slot = "unit-elements-sdk-slot",
22
22
  account = "unit-elements-account",
23
+ checkDeposit = "unit-elements-check-deposit",
23
24
  achDebitPayment = "unit-elements-ach-debit-payment",
24
25
  achCreditPayment = "unit-elements-ach-credit-payment"
25
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-unit-components",
3
- "version": "1.2.1",
3
+ "version": "1.4.0",
4
4
  "description": "Unit React Native components",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -74,8 +74,8 @@
74
74
  "peerDependencies": {
75
75
  "react": "*",
76
76
  "react-native": "*",
77
- "react-native-webview": "*",
78
- "react-native-plaid-link-sdk": "*"
77
+ "react-native-plaid-link-sdk": "*",
78
+ "react-native-webview": "*"
79
79
  },
80
80
  "dependencies": {
81
81
  "axios": "^1.3.3",
@@ -2,13 +2,14 @@ import React, { useState } from 'react';
2
2
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
3
3
  import { PresentationMode } from '../../scripts/html/bodyHtml';
4
4
  import type { WebViewMessage } from '../../messages/webMessages';
5
- import type { UNResponseUnitOnLoadEvent, UNACHData } from '../../sharedTypes';
5
+ import type { UNOnLoadResponse, UNACHData, UNACHOnLoadData, UNError, UNOnLoadResponseData } from '../../sharedTypes';
6
6
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
7
7
  import { View } from 'react-native';
8
8
  import { UnitMessage } from '../../messages/webMessages/unitMessages';
9
9
  import { getACHCreditParams, getACHCreditScript } from './UNACHCreditComponent.utils';
10
10
  import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
11
11
  import type { ACHEvent } from '../../messages/webMessages/achCreditMessage';
12
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
12
13
 
13
14
  export interface UNACHCreditComponentProps {
14
15
  accountId: string;
@@ -17,13 +18,39 @@ export interface UNACHCreditComponentProps {
17
18
  isAutoFocus?: boolean;
18
19
  fee?: number;
19
20
  onPaymentCreated?: (data: UNACHData) => void;
20
- onLoad?: (response: UNResponseUnitOnLoadEvent) => void;
21
+ onLoad?: (response: UNOnLoadResponse<UNACHOnLoadData>) => void;
21
22
  }
22
23
 
23
24
  export const UNACHCreditComponent = (props: UNACHCreditComponentProps) => {
24
25
  const [height, setHeight] = useState<number>(0);
25
26
  const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);
26
27
 
28
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
29
+ if (!props.onLoad) {
30
+ return;
31
+ }
32
+
33
+ if (RESPONSE_KEYS.errors in response) {
34
+ props.onLoad(response as UNError);
35
+ return;
36
+ }
37
+
38
+ if (RESPONSE_KEYS.account in response && RESPONSE_KEYS.counterpartyAccount in response) {
39
+ // ACHOnLoadResponse;
40
+ const achOnload: UNOnLoadResponseData<UNACHOnLoadData> = {
41
+ data: {
42
+ [RESPONSE_KEYS.account]: response[RESPONSE_KEYS.account].data,
43
+ [RESPONSE_KEYS.counterpartyAccount]: response[RESPONSE_KEYS.counterpartyAccount].data,
44
+ }
45
+ };
46
+ props.onLoad(achOnload);
47
+ return;
48
+ }
49
+
50
+ console.error('On Load Error: unexpected response type');
51
+ return;
52
+ };
53
+
27
54
  const handleWebViewMessage = (message: WebViewMessage) => {
28
55
  if (!message || !message.details) return;
29
56
 
@@ -34,7 +61,7 @@ export const UNACHCreditComponent = (props: UNACHCreditComponentProps) => {
34
61
  break;
35
62
  }
36
63
  case UnitMessage.UNIT_ON_LOAD:
37
- props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);
64
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
38
65
  break;
39
66
  case PageMessage.PAGE_HEIGHT: {
40
67
  const currentHeight = (message.details as HeightEvent).height;
@@ -2,7 +2,7 @@ import React, { useEffect, useRef, useState } from 'react';
2
2
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
3
3
  import { PresentationMode } from '../../scripts/html/bodyHtml';
4
4
  import type { WebViewMessage } from '../../messages/webMessages';
5
- import type { UNResponseUnitOnLoadEvent, UNACHData } from '../../sharedTypes';
5
+ import type { UNOnLoadResponse, UNACHData, UNError, UNOnLoadResponseData, UNACHOnLoadData } from '../../sharedTypes';
6
6
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
7
7
  import { Platform, View } from 'react-native';
8
8
  import { PlaidLinkTokenData, PlaidTokenCreatedEvent, RequestExternalSdkEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
@@ -13,6 +13,7 @@ import type WebView from 'react-native-webview';
13
13
 
14
14
  import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
15
15
  import type { ACHEvent } from '../../messages/webMessages/achCreditMessage';
16
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
16
17
 
17
18
  export interface UNACHDebitComponentProps {
18
19
  accountId: string;
@@ -21,7 +22,7 @@ export interface UNACHDebitComponentProps {
21
22
  isAutoFocus?: boolean;
22
23
  fee?: number;
23
24
  onPaymentCreated?: (data: UNACHData) => void;
24
- onLoad?: (response: UNResponseUnitOnLoadEvent) => void;
25
+ onLoad?: (response: UNOnLoadResponse<UNACHOnLoadData>) => void;
25
26
  }
26
27
 
27
28
  export const UNACHDebitComponent = (props: UNACHDebitComponentProps) => {
@@ -45,6 +46,32 @@ export const UNACHDebitComponent = (props: UNACHDebitComponentProps) => {
45
46
  injectUnitPlaidResponse(webRef.current, success);
46
47
  };
47
48
 
49
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
50
+ if (!props.onLoad) {
51
+ return;
52
+ }
53
+
54
+ if (RESPONSE_KEYS.errors in response) {
55
+ props.onLoad(response as UNError);
56
+ return;
57
+ }
58
+
59
+ if (RESPONSE_KEYS.account in response && RESPONSE_KEYS.counterpartyAccount in response) {
60
+ // ACHOnLoadResponse;
61
+ const achOnload: UNOnLoadResponseData<UNACHOnLoadData> = {
62
+ data: {
63
+ [RESPONSE_KEYS.account]: response[RESPONSE_KEYS.account].data,
64
+ [RESPONSE_KEYS.counterpartyAccount]: response[RESPONSE_KEYS.counterpartyAccount].data,
65
+ }
66
+ };
67
+ props.onLoad(achOnload);
68
+ return;
69
+ }
70
+
71
+ console.error('On Load Error: unexpected response type');
72
+ return;
73
+ };
74
+
48
75
  const handleWebViewMessage = (message: WebViewMessage) => {
49
76
  if (!message || !message.details) return;
50
77
 
@@ -55,7 +82,7 @@ export const UNACHDebitComponent = (props: UNACHDebitComponentProps) => {
55
82
  break;
56
83
  }
57
84
  case UnitMessage.UNIT_ON_LOAD:
58
- props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);
85
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
59
86
  break;
60
87
  case PageMessage.PAGE_HEIGHT: {
61
88
  const currentHeight = (message.details as HeightEvent).height;
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useRef, useState } from 'react';
1
+ import React, { useEffect, useImperativeHandle, useRef, useState } from 'react';
2
2
  import { Dimensions, View } from 'react-native';
3
3
  import type WebView from 'react-native-webview';
4
4
  import { HeightEvent, PageMessage } from '../..//messages/webMessages/pageMessage';
@@ -6,28 +6,42 @@ import { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../m
6
6
  import EventBus from '../../helpers/EventBus';
7
7
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
8
8
  import type { WebViewMessage } from '../../messages/webMessages';
9
- import { getAccountParams, getAccountScript, injectRefreshEventIfNeeded } from './UNAccountComponent.utils';
9
+ import { getAccountParams, getAccountScript, injectOpenActionsMenuScript, injectRefreshEventIfNeeded, injectRequestAccountActionScript } from './UNAccountComponent.utils';
10
10
  import { PresentationMode } from '../../scripts/html/bodyHtml';
11
11
  import type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';
12
- import type { UNResponseUnitOnLoadEvent } from '../../sharedTypes';
12
+ import type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';
13
13
  import { useListenerToBus } from '../../hooks/listenerToBus';
14
14
  import type { UNAccountData } from '../../sharedTypes/account.types';
15
15
  import { AccountMessage } from '../../messages/webMessages/accountMessage';
16
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
17
+ import type { UNAccountMenuAction } from '../../sharedTypes';
16
18
 
17
19
  export interface UNAccountComponentProps {
20
+ // inputs
18
21
  accountId?: string;
19
22
  customerToken: string;
23
+
24
+ // ui
20
25
  theme?: string;
21
- onLoad?: (response: UNResponseUnitOnLoadEvent) => void;
26
+ hideActionsMenuButton?: boolean;
27
+ hideSelectionMenuButton?: boolean;
28
+
29
+ // events
30
+ onLoad?: (response: UNOnLoadResponse<[UNAccountData]>) => void;
22
31
  onAccountChanged?: (account: UNAccountData) => void;
23
32
  }
24
33
 
34
+ export interface UNAccountRef {
35
+ openActionsMenu: () => void;
36
+ openAction: (action: UNAccountMenuAction) => void;
37
+ }
38
+
25
39
  export enum AccountAction {
26
40
  List = 'account-list',
27
41
  Menu = 'account-menu'
28
42
  }
29
43
 
30
- export const UNAccountComponent = (props: UNAccountComponentProps) => {
44
+ export const UNAccountComponent = React.forwardRef<UNAccountRef, UNAccountComponentProps>(function UNAccountComponent(props, accountRef) {
31
45
  const [height, setHeight] = useState(0);
32
46
  const windowWidth = Dimensions.get('window').width;
33
47
 
@@ -36,13 +50,33 @@ export const UNAccountComponent = (props: UNAccountComponentProps) => {
36
50
  const webRef = useRef<WebView>(null);
37
51
 
38
52
  const handleAccountChanged = (account: UNAccountData) => {
39
- props.onAccountChanged && props.onAccountChanged(account)
40
- }
53
+ props.onAccountChanged && props.onAccountChanged(account);
54
+ };
41
55
 
42
56
  const requestRefresh = (data: RequestRefreshEvent) => {
43
57
  setRequestRefreshEvent(data);
44
58
  };
45
59
 
60
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
61
+ if (!props.onLoad) {
62
+ return;
63
+ }
64
+
65
+ if (RESPONSE_KEYS.errors in response) {
66
+ props.onLoad(response as UNError);
67
+ return;
68
+ }
69
+
70
+ if (RESPONSE_KEYS.account in response) {
71
+ // AccountsOnLoadResponse;
72
+ props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<[UNAccountData]>);
73
+ return;
74
+ }
75
+
76
+ console.error('On Load Error: unexpected response type.');
77
+ return;
78
+ };
79
+
46
80
  useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });
47
81
  useListenerToBus({ busEventKey: AccountMessage.UNIT_ACCOUNT_CHANGED, action: handleAccountChanged });
48
82
 
@@ -50,10 +84,19 @@ export const UNAccountComponent = (props: UNAccountComponentProps) => {
50
84
  injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent);
51
85
  }, [requestRefreshEvent]);
52
86
 
87
+ useImperativeHandle(accountRef, () => ({
88
+ openActionsMenu() {
89
+ injectOpenActionsMenuScript(webRef.current);
90
+ },
91
+ openAction(action: UNAccountMenuAction) {
92
+ injectRequestAccountActionScript(webRef.current, action);
93
+ }
94
+ }));
95
+
53
96
  const handleMessage = (message: WebViewMessage) => {
54
97
  switch (message.type) {
55
98
  case UnitMessage.UNIT_ON_LOAD:
56
- props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);
99
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
57
100
  break;
58
101
  case UnitMessage.UNIT_REQUEST_RENDERING: {
59
102
  const event: BottomSheetSlotData = {
@@ -85,4 +128,4 @@ export const UNAccountComponent = (props: UNAccountComponentProps) => {
85
128
  />
86
129
  </View>
87
130
  );
88
- };
131
+ });
@@ -2,11 +2,14 @@ import { AccountAction, UNAccountComponentProps } from './UNAccountComponent';
2
2
  import { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
3
3
  import type WebView from 'react-native-webview';
4
4
  import { WebComponentType } from '../../webComponent/WebComponent';
5
+ import type { UNAccountMenuAction } from 'src/sharedTypes';
5
6
 
6
7
  export const getAccountParams = (props: UNAccountComponentProps) => {
7
8
  return `
8
9
  account-id="${props.accountId}"
9
10
  customer-token="${props.customerToken}"
11
+ hide-actions-menu-button="${props.hideActionsMenuButton || false}"
12
+ hide-selection-menu-button="${props.hideSelectionMenuButton || false}"
10
13
  `;
11
14
  };
12
15
 
@@ -19,6 +22,14 @@ export const getAccountScript = () => {
19
22
  `;
20
23
  };
21
24
 
25
+ export const injectOpenActionsMenuScript = (currentWeb: WebView | null) => {
26
+ currentWeb?.injectJavaScript(`dispatchOpenActionsMenu('${WebComponentType.account}')`);
27
+ };
28
+
29
+ export const injectRequestAccountActionScript = (currentWeb: WebView | null, action: UNAccountMenuAction) => {
30
+ currentWeb?.injectJavaScript(`dispatchRequestAccountAction('${action}')`);
31
+ };
32
+
22
33
  export const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null) => {
23
34
  if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.account.valueOf())) {
24
35
  currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);