react-native-unit-components 3.3.0-beta.3 → 3.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 (141) hide show
  1. package/README.md +1 -77
  2. package/android/src/main/res/values/strings.xml +1 -0
  3. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +1 -1
  4. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -1
  5. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +1 -1
  6. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -1
  7. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +13 -1
  8. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  9. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +0 -4
  10. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  11. package/lib/commonjs/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js +41 -0
  12. package/lib/commonjs/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js.map +1 -1
  13. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +1 -1
  14. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  15. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +2 -1
  16. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -1
  17. package/lib/commonjs/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js +72 -0
  18. package/lib/commonjs/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js.map +1 -1
  19. package/lib/commonjs/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.js +41 -1
  20. package/lib/commonjs/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.js.map +1 -1
  21. package/lib/commonjs/messages/webMessages/balanceSummaryMessage.js +11 -0
  22. package/lib/commonjs/messages/webMessages/balanceSummaryMessage.js.map +1 -0
  23. package/lib/commonjs/messages/webMessages/billActionsMessage.js +19 -0
  24. package/lib/commonjs/messages/webMessages/billActionsMessage.js.map +1 -0
  25. package/lib/commonjs/messages/webMessages/billPayBillsMessage.js +11 -0
  26. package/lib/commonjs/messages/webMessages/billPayBillsMessage.js.map +1 -0
  27. package/lib/commonjs/messages/webMessages/billPayMenuMessage.js +15 -0
  28. package/lib/commonjs/messages/webMessages/billPayMenuMessage.js.map +1 -0
  29. package/lib/commonjs/messages/webMessages/unsavedChangesMessage.js +11 -0
  30. package/lib/commonjs/messages/webMessages/unsavedChangesMessage.js.map +1 -0
  31. package/lib/commonjs/messages/webMessages/vendorFormMessage.js +11 -0
  32. package/lib/commonjs/messages/webMessages/vendorFormMessage.js.map +1 -0
  33. package/lib/commonjs/scripts/html/bodyScript.js +125 -1
  34. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
  35. package/lib/commonjs/services/veryfiService.js +19 -2
  36. package/lib/commonjs/services/veryfiService.js.map +1 -1
  37. package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdk.constants.js +2 -2
  38. package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdkManager.js +1 -1
  39. package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdkManager.js.map +1 -1
  40. package/lib/commonjs/utils/eventBus/EventBus.types.js +4 -0
  41. package/lib/commonjs/utils/eventBus/EventBus.types.js.map +1 -1
  42. package/lib/commonjs/webComponent/html.js +24 -0
  43. package/lib/commonjs/webComponent/html.js.map +1 -1
  44. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +1 -1
  45. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -1
  46. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +1 -1
  47. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -1
  48. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +13 -1
  49. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  50. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +0 -4
  51. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  52. package/lib/module/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js +41 -0
  53. package/lib/module/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js.map +1 -1
  54. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +1 -1
  55. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  56. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +2 -1
  57. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -1
  58. package/lib/module/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js +73 -1
  59. package/lib/module/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js.map +1 -1
  60. package/lib/module/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.js +33 -1
  61. package/lib/module/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.js.map +1 -1
  62. package/lib/module/messages/webMessages/balanceSummaryMessage.js +5 -0
  63. package/lib/module/messages/webMessages/balanceSummaryMessage.js.map +1 -0
  64. package/lib/module/messages/webMessages/billActionsMessage.js +13 -0
  65. package/lib/module/messages/webMessages/billActionsMessage.js.map +1 -0
  66. package/lib/module/messages/webMessages/billPayBillsMessage.js +5 -0
  67. package/lib/module/messages/webMessages/billPayBillsMessage.js.map +1 -0
  68. package/lib/module/messages/webMessages/billPayMenuMessage.js +9 -0
  69. package/lib/module/messages/webMessages/billPayMenuMessage.js.map +1 -0
  70. package/lib/module/messages/webMessages/unsavedChangesMessage.js +5 -0
  71. package/lib/module/messages/webMessages/unsavedChangesMessage.js.map +1 -0
  72. package/lib/module/messages/webMessages/vendorFormMessage.js +5 -0
  73. package/lib/module/messages/webMessages/vendorFormMessage.js.map +1 -0
  74. package/lib/module/scripts/html/bodyScript.js +124 -0
  75. package/lib/module/scripts/html/bodyScript.js.map +1 -1
  76. package/lib/module/services/veryfiService.js +19 -2
  77. package/lib/module/services/veryfiService.js.map +1 -1
  78. package/lib/module/unitComponentsSdkManager/UnitComponentsSdk.constants.js +2 -2
  79. package/lib/module/unitComponentsSdkManager/UnitComponentsSdkManager.js +1 -1
  80. package/lib/module/unitComponentsSdkManager/UnitComponentsSdkManager.js.map +1 -1
  81. package/lib/module/utils/eventBus/EventBus.types.js +4 -0
  82. package/lib/module/utils/eventBus/EventBus.types.js.map +1 -1
  83. package/lib/module/webComponent/html.js +25 -1
  84. package/lib/module/webComponent/html.js.map +1 -1
  85. package/lib/typescript/src/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts.map +1 -1
  86. package/lib/typescript/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts.map +1 -1
  87. package/lib/typescript/src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.d.ts.map +1 -1
  88. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts +1 -1
  89. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts.map +1 -1
  90. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.d.ts.map +1 -1
  91. package/lib/typescript/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.d.ts.map +1 -1
  92. package/lib/typescript/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.d.ts +11 -0
  93. package/lib/typescript/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.d.ts.map +1 -1
  94. package/lib/typescript/src/messages/webMessages/balanceSummaryMessage.d.ts +6 -0
  95. package/lib/typescript/src/messages/webMessages/balanceSummaryMessage.d.ts.map +1 -0
  96. package/lib/typescript/src/messages/webMessages/billActionsMessage.d.ts +11 -0
  97. package/lib/typescript/src/messages/webMessages/billActionsMessage.d.ts.map +1 -0
  98. package/lib/typescript/src/messages/webMessages/billPayBillsMessage.d.ts +6 -0
  99. package/lib/typescript/src/messages/webMessages/billPayBillsMessage.d.ts.map +1 -0
  100. package/lib/typescript/src/messages/webMessages/billPayMenuMessage.d.ts +13 -0
  101. package/lib/typescript/src/messages/webMessages/billPayMenuMessage.d.ts.map +1 -0
  102. package/lib/typescript/src/messages/webMessages/index.d.ts +8 -2
  103. package/lib/typescript/src/messages/webMessages/index.d.ts.map +1 -1
  104. package/lib/typescript/src/messages/webMessages/unitComponentsMessages.d.ts +1 -0
  105. package/lib/typescript/src/messages/webMessages/unitComponentsMessages.d.ts.map +1 -1
  106. package/lib/typescript/src/messages/webMessages/unsavedChangesMessage.d.ts +9 -0
  107. package/lib/typescript/src/messages/webMessages/unsavedChangesMessage.d.ts.map +1 -0
  108. package/lib/typescript/src/messages/webMessages/vendorFormMessage.d.ts +5 -0
  109. package/lib/typescript/src/messages/webMessages/vendorFormMessage.d.ts.map +1 -0
  110. package/lib/typescript/src/scripts/html/bodyScript.d.ts +20 -0
  111. package/lib/typescript/src/scripts/html/bodyScript.d.ts.map +1 -1
  112. package/lib/typescript/src/services/veryfiService.d.ts +1 -1
  113. package/lib/typescript/src/services/veryfiService.d.ts.map +1 -1
  114. package/lib/typescript/src/unitComponentsSdkManager/UnitComponentsSdkManager.d.ts.map +1 -1
  115. package/lib/typescript/src/utils/eventBus/EventBus.types.d.ts +21 -0
  116. package/lib/typescript/src/utils/eventBus/EventBus.types.d.ts.map +1 -1
  117. package/lib/typescript/src/webComponent/html.d.ts.map +1 -1
  118. package/package.json +1 -1
  119. package/src/components/UNACHCreditComponent/UNACHCreditComponent.utils.ts +1 -1
  120. package/src/components/UNACHDebitComponent/UNACHDebitComponent.utils.ts +1 -1
  121. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +11 -1
  122. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +0 -4
  123. package/src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.tsx +50 -0
  124. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +2 -1
  125. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.ts +2 -1
  126. package/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.tsx +82 -0
  127. package/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.utils.ts +59 -1
  128. package/src/messages/webMessages/balanceSummaryMessage.ts +8 -0
  129. package/src/messages/webMessages/billActionsMessage.ts +13 -0
  130. package/src/messages/webMessages/billPayBillsMessage.ts +8 -0
  131. package/src/messages/webMessages/billPayMenuMessage.ts +16 -0
  132. package/src/messages/webMessages/index.ts +18 -0
  133. package/src/messages/webMessages/unitComponentsMessages.ts +2 -0
  134. package/src/messages/webMessages/unsavedChangesMessage.ts +10 -0
  135. package/src/messages/webMessages/vendorFormMessage.ts +5 -0
  136. package/src/scripts/html/bodyScript.ts +134 -0
  137. package/src/services/veryfiService.ts +21 -1
  138. package/src/unitComponentsSdkManager/UnitComponentsSdk.constants.ts +2 -2
  139. package/src/unitComponentsSdkManager/UnitComponentsSdkManager.ts +1 -1
  140. package/src/utils/eventBus/EventBus.types.ts +21 -0
  141. package/src/webComponent/html.ts +26 -0
@@ -35,6 +35,12 @@ import { useSafeAreaDimensions } from '../../../../hooks/useSafeAreaDimensions';
35
35
  import { BottomSheetNativeMessage } from '../../../../messages/nativeMessages/bottomSheetMessage';
36
36
  import { OpenPlaidEvent, PlaidMessage } from '../../../../messages/webMessages/plaidMessages';
37
37
  import { PayeeCounterpartyEvent, PayeeManagementMessage } from '../../../../messages/webMessages/payeeManagementMessage';
38
+ import { BillPayMenuMessage, RequestEditBillEvent } from '../../../../messages/webMessages/billPayMenuMessage';
39
+ import { BillActionsMessage } from '../../../../messages/webMessages/billActionsMessage';
40
+ import { BillPayBillsMessage, BillsFiltersChangedEvent } from '../../../../messages/webMessages/billPayBillsMessage';
41
+ import { BalanceSummaryMessage, RequestDateRangeMenuValueChangeEvent } from '../../../../messages/webMessages/balanceSummaryMessage';
42
+ import { VendorFormMessage } from '../../../../messages/webMessages/vendorFormMessage';
43
+ import { UnsavedChangesMessage, UnsavedChangesActionEvent } from '../../../../messages/webMessages/unsavedChangesMessage';
38
44
  import UNKeyboardAvoidingView from '../../../../helpers/UNKeyboardAvoidingView/UNKeyboardAvoidingView';
39
45
  import { MultipleCardsFiltersChangedEvent, MultipleCardsMessage } from '../../../../messages/webMessages/multipleCardsMessage';
40
46
  import { View } from 'react-native';
@@ -199,6 +205,18 @@ const UNBottomSheetSlotComponent = (props: UNBottomSheetSlotComponentProps) => {
199
205
  (message.details as MultipleCardsFiltersChangedEvent)
200
206
  );
201
207
  break;
208
+ case BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED:
209
+ eventBus.emit(
210
+ BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED,
211
+ (message.details as BillsFiltersChangedEvent)
212
+ );
213
+ break;
214
+ case BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE:
215
+ eventBus.emit(
216
+ BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE,
217
+ (message.details as RequestDateRangeMenuValueChangeEvent)
218
+ );
219
+ break;
202
220
  case PayeeManagementMessage.UNIT_COUNTERPARTY_DELETED: {
203
221
  eventBus.emit(
204
222
  PayeeManagementMessage.UNIT_COUNTERPARTY_DELETED,
@@ -206,6 +224,38 @@ const UNBottomSheetSlotComponent = (props: UNBottomSheetSlotComponentProps) => {
206
224
  );
207
225
  break;
208
226
  }
227
+ case BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL:
228
+ eventBus.emit(BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL, message.details as RequestEditBillEvent);
229
+ break;
230
+ case BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY:
231
+ eventBus.emit(BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY, {});
232
+ break;
233
+ case BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS:
234
+ eventBus.emit(BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS, {});
235
+ break;
236
+ case BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS:
237
+ eventBus.emit(BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS, {});
238
+ break;
239
+ case BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS:
240
+ eventBus.emit(BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS, {});
241
+ break;
242
+ case VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT:
243
+ eventBus.emit(VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT, {});
244
+ break;
245
+ case UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION:
246
+ eventBus.emit(
247
+ UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION,
248
+ message.details as UnsavedChangesActionEvent
249
+ );
250
+ break;
251
+ case BillActionsMessage.UNIT_BILL_ARCHIVED:
252
+ case BillActionsMessage.UNIT_BILL_MARK_AS_PAID:
253
+ case BillActionsMessage.UNIT_BILL_MARK_AS_UNPAID:
254
+ case BillActionsMessage.UNIT_BILL_RESCHEDULED:
255
+ case BillActionsMessage.UNIT_BILL_CHECK_CANCELLED:
256
+ case BillActionsMessage.UNIT_BILL_REFUNDED:
257
+ eventBus.emit(message.type, message.details as string);
258
+ break;
209
259
  }
210
260
  };
211
261
 
@@ -19,7 +19,7 @@ import type WebView from 'react-native-webview';
19
19
  import type { RootState } from '../../store';
20
20
 
21
21
  export interface UNCheckDepositComponentProps {
22
- accountId: string;
22
+ accountId?: string;
23
23
  fee?: number;
24
24
  theme?: string;
25
25
  language?: string;
@@ -115,6 +115,7 @@ const UNCheckDepositComponent = (props: UNCheckDepositComponentProps) => {
115
115
  }
116
116
  configureAndShowVeryfiCamera(
117
117
  veryfiCredentials,
118
+ externalSdkEvent.bankName,
118
119
  (images) => {
119
120
  injectUnitVeryfiResponse(webRef.current, images);
120
121
  },
@@ -6,11 +6,12 @@ import type WebView from 'react-native-webview';
6
6
  import type { UNVeryfiCredentials } from '../../types/shared/veryfi.types';
7
7
 
8
8
  export const getCheckDepositParams = (props: UNCheckDepositComponentProps, veryfiCredentials?: UNVeryfiCredentials | null) => {
9
+ const accountIdParam = props.accountId ? `account-id="${props.accountId}"` : '';
9
10
  const feeParam = props.fee ? `fee="${props.fee}"` : '';
10
11
  const useVeryfi = veryfiCredentials && isVeryfiAvailable();
11
12
  const versionParam = useVeryfi ? 'version="veryfi"' : '';
12
13
  return `
13
- account-id="${props.accountId}"
14
+ ${accountIdParam}
14
15
  ${feeParam}
15
16
  ${versionParam}
16
17
  initial-stage-back-button="${props.initialStageBackButton ?? false}"
@@ -19,7 +19,21 @@ import {
19
19
  injectAccountCreationActionsOpenPlaidForLinkExternalAccount,
20
20
  injectCardCreated,
21
21
  injectRefreshEventIfNeeded,
22
+ injectRequestEditBill,
23
+ injectRequestCreateManualBillPay,
24
+ injectRequestOpenArchivedBills,
25
+ injectRequestOpenVendors,
26
+ injectRequestOpenPaymentMethods,
27
+ injectVendorFormTrySubmit,
28
+ injectUnsavedChangesAction,
29
+ injectBillActionResult,
22
30
  } from './UNWhiteLabelAppComponent.utils';
31
+ import { BillPayMenuMessage, RequestEditBillEvent } from '../../messages/webMessages/billPayMenuMessage';
32
+ import { BillActionsMessage } from '../../messages/webMessages/billActionsMessage';
33
+ import { BillPayBillsMessage } from '../../messages/webMessages/billPayBillsMessage';
34
+ import { BalanceSummaryMessage } from '../../messages/webMessages/balanceSummaryMessage';
35
+ import { VendorFormMessage } from '../../messages/webMessages/vendorFormMessage';
36
+ import { UnsavedChangesMessage, UnsavedChangesActionEvent } from '../../messages/webMessages/unsavedChangesMessage';
23
37
  import { UserDataKeys } from '../../types/internal/unitStore.types';
24
38
  import { PageMessage } from '../../messages/webMessages/pageMessage';
25
39
  import UNStoreManagerHelper from '../../nativeModulesHelpers/UNStoreModuleHelper/UNStoreModuleHelper';
@@ -104,6 +118,14 @@ const UNWhiteLabelAppComponent = (props: UNWhiteLabelAppComponentProps) => {
104
118
  webRef.current?.injectJavaScript(`dispatchActivityFilterChangedEvent('${query}')`);
105
119
  };
106
120
 
121
+ const dispatchBillsFiltersChanged = (query: string) => {
122
+ webRef.current?.injectJavaScript(`dispatchBillsFilterChangedEvent('${query}')`);
123
+ };
124
+
125
+ const dispatchDateRangeMenuValueChange = (value: string) => {
126
+ webRef.current?.injectJavaScript(`dispatchDateRangeMenuValueChangeEvent('${value}')`);
127
+ };
128
+
107
129
  const openPlaid = (openPlaidData: OpenPlaidEvent) => {
108
130
  const linkToken = openPlaidData.plaidLinkToken.attributes.linkToken;
109
131
  createPlaidLink({ token: linkToken });
@@ -123,6 +145,14 @@ const UNWhiteLabelAppComponent = (props: UNWhiteLabelAppComponentProps) => {
123
145
  busEventKey: ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED,
124
146
  action: dispatchActivityFiltersChanged,
125
147
  });
148
+ useEventListener({
149
+ busEventKey: BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED,
150
+ action: dispatchBillsFiltersChanged,
151
+ });
152
+ useEventListener({
153
+ busEventKey: BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE,
154
+ action: dispatchDateRangeMenuValueChange,
155
+ });
126
156
  useEventListener({
127
157
  busEventKey: PlaidMessage.UNIT_OPEN_PLAID,
128
158
  action: (details) => {
@@ -139,6 +169,58 @@ const UNWhiteLabelAppComponent = (props: UNWhiteLabelAppComponentProps) => {
139
169
  useEventListener({ busEventKey: CardMessage.CARD_CREATED, action: (card: CardCreatedEvent) => {
140
170
  injectCardCreated(webRef.current, card);
141
171
  } });
172
+ useEventListener({
173
+ busEventKey: BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL,
174
+ action: (detail: RequestEditBillEvent) => injectRequestEditBill(webRef.current, detail),
175
+ });
176
+ useEventListener({
177
+ busEventKey: BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY,
178
+ action: () => injectRequestCreateManualBillPay(webRef.current),
179
+ });
180
+ useEventListener({
181
+ busEventKey: BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS,
182
+ action: () => injectRequestOpenArchivedBills(webRef.current),
183
+ });
184
+ useEventListener({
185
+ busEventKey: BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS,
186
+ action: () => injectRequestOpenVendors(webRef.current),
187
+ });
188
+ useEventListener({
189
+ busEventKey: BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS,
190
+ action: () => injectRequestOpenPaymentMethods(webRef.current),
191
+ });
192
+ useEventListener({
193
+ busEventKey: VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT,
194
+ action: () => injectVendorFormTrySubmit(webRef.current),
195
+ });
196
+ useEventListener({
197
+ busEventKey: UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION,
198
+ action: (detail: UnsavedChangesActionEvent) => injectUnsavedChangesAction(webRef.current, detail),
199
+ });
200
+ useEventListener({
201
+ busEventKey: BillActionsMessage.UNIT_BILL_ARCHIVED,
202
+ action: (billId: string) => injectBillActionResult(webRef.current, BillActionsMessage.UNIT_BILL_ARCHIVED, billId),
203
+ });
204
+ useEventListener({
205
+ busEventKey: BillActionsMessage.UNIT_BILL_MARK_AS_PAID,
206
+ action: (billId: string) => injectBillActionResult(webRef.current, BillActionsMessage.UNIT_BILL_MARK_AS_PAID, billId),
207
+ });
208
+ useEventListener({
209
+ busEventKey: BillActionsMessage.UNIT_BILL_MARK_AS_UNPAID,
210
+ action: (billId: string) => injectBillActionResult(webRef.current, BillActionsMessage.UNIT_BILL_MARK_AS_UNPAID, billId),
211
+ });
212
+ useEventListener({
213
+ busEventKey: BillActionsMessage.UNIT_BILL_RESCHEDULED,
214
+ action: (billId: string) => injectBillActionResult(webRef.current, BillActionsMessage.UNIT_BILL_RESCHEDULED, billId),
215
+ });
216
+ useEventListener({
217
+ busEventKey: BillActionsMessage.UNIT_BILL_CHECK_CANCELLED,
218
+ action: (billId: string) => injectBillActionResult(webRef.current, BillActionsMessage.UNIT_BILL_CHECK_CANCELLED, billId),
219
+ });
220
+ useEventListener({
221
+ busEventKey: BillActionsMessage.UNIT_BILL_REFUNDED,
222
+ action: (billId: string) => injectBillActionResult(webRef.current, BillActionsMessage.UNIT_BILL_REFUNDED, billId),
223
+ });
142
224
 
143
225
  const renderWebView = () => {
144
226
  return (
@@ -1,8 +1,26 @@
1
1
  import WebView from 'react-native-webview';
2
2
  import { RequestRefreshEvent } from '../../messages/webMessages/unitComponentsMessages';
3
3
  import { UNWhiteLabelAppComponentProps } from './UNWhiteLabelAppComponent';
4
- import { DISPATCH_ACCOUNT_CREATION_ACTIONS_OPEN_PLAID_FOR_LINK_EXTERNAL_ACCOUNT, DISPATCH_OPEN_PLAID, DISPATCH_PLAID_EXIT, DISPATCH_PLAID_RESPONSE, DISPATCH_REQUEST_REFRESH, LISTENERS } from '../../scripts/html/bodyScript';
4
+ import {
5
+ DISPATCH_ACCOUNT_CREATION_ACTIONS_OPEN_PLAID_FOR_LINK_EXTERNAL_ACCOUNT,
6
+ DISPATCH_OPEN_PLAID,
7
+ DISPATCH_PLAID_EXIT,
8
+ DISPATCH_PLAID_RESPONSE,
9
+ DISPATCH_REQUEST_REFRESH,
10
+ DISPATCH_REQUEST_EDIT_BILL,
11
+ DISPATCH_REQUEST_CREATE_MANUAL_BILL_PAY,
12
+ DISPATCH_REQUEST_OPEN_ARCHIVED_BILLS,
13
+ DISPATCH_REQUEST_OPEN_VENDORS,
14
+ DISPATCH_REQUEST_OPEN_PAYMENT_METHODS,
15
+ DISPATCH_VENDOR_FORM_TRY_SUBMIT,
16
+ DISPATCH_UNSAVED_CHANGES_ACTION,
17
+ DISPATCH_BILL_ACTION_RESULT,
18
+ LISTENERS,
19
+ } from '../../scripts/html/bodyScript';
5
20
  import { UNCard } from '../../types/shared';
21
+ import { RequestEditBillEvent } from '../../messages/webMessages/billPayMenuMessage';
22
+ import { BillActionsMessage } from '../../messages/webMessages/billActionsMessage';
23
+ import { UnsavedChangesActionEvent } from '../../messages/webMessages/unsavedChangesMessage';
6
24
 
7
25
  export const getWhiteLabelAppParams = (props: UNWhiteLabelAppComponentProps) => {
8
26
  // customer token is the preferred way to authenticate
@@ -35,6 +53,38 @@ export const injectCardCreated = (currentWeb: WebView | null, card: UNCard) => {
35
53
  currentWeb?.injectJavaScript(`dispatchCardCreatedEvent(${JSON.stringify(card)})`);
36
54
  };
37
55
 
56
+ export const injectRequestEditBill = (currentWeb: WebView | null, detail: RequestEditBillEvent) => {
57
+ currentWeb?.injectJavaScript(`dispatchRequestEditBill(${JSON.stringify(JSON.stringify(detail))})`);
58
+ };
59
+
60
+ export const injectRequestCreateManualBillPay = (currentWeb: WebView | null) => {
61
+ currentWeb?.injectJavaScript('dispatchRequestCreateManualBillPay()');
62
+ };
63
+
64
+ export const injectRequestOpenArchivedBills = (currentWeb: WebView | null) => {
65
+ currentWeb?.injectJavaScript('dispatchRequestOpenArchivedBills()');
66
+ };
67
+
68
+ export const injectRequestOpenVendors = (currentWeb: WebView | null) => {
69
+ currentWeb?.injectJavaScript('dispatchRequestOpenVendors()');
70
+ };
71
+
72
+ export const injectRequestOpenPaymentMethods = (currentWeb: WebView | null) => {
73
+ currentWeb?.injectJavaScript('dispatchRequestOpenPaymentMethods()');
74
+ };
75
+
76
+ export const injectVendorFormTrySubmit = (currentWeb: WebView | null) => {
77
+ currentWeb?.injectJavaScript('dispatchVendorFormTrySubmit()');
78
+ };
79
+
80
+ export const injectUnsavedChangesAction = (currentWeb: WebView | null, detail: UnsavedChangesActionEvent) => {
81
+ currentWeb?.injectJavaScript(`dispatchUnsavedChangesAction(${JSON.stringify(JSON.stringify(detail))})`);
82
+ };
83
+
84
+ export const injectBillActionResult = (currentWeb: WebView | null, eventName: BillActionsMessage, billId: string) => {
85
+ currentWeb?.injectJavaScript(`dispatchBillActionResult(${JSON.stringify(eventName)}, ${JSON.stringify(billId)})`);
86
+ };
87
+
38
88
  export const getWhiteLabelAppScript = () => {
39
89
  return `
40
90
  ${DISPATCH_REQUEST_REFRESH}
@@ -42,6 +92,14 @@ export const getWhiteLabelAppScript = () => {
42
92
  ${DISPATCH_PLAID_RESPONSE}
43
93
  ${DISPATCH_PLAID_EXIT}
44
94
  ${DISPATCH_ACCOUNT_CREATION_ACTIONS_OPEN_PLAID_FOR_LINK_EXTERNAL_ACCOUNT}
95
+ ${DISPATCH_REQUEST_EDIT_BILL}
96
+ ${DISPATCH_REQUEST_CREATE_MANUAL_BILL_PAY}
97
+ ${DISPATCH_REQUEST_OPEN_ARCHIVED_BILLS}
98
+ ${DISPATCH_REQUEST_OPEN_VENDORS}
99
+ ${DISPATCH_REQUEST_OPEN_PAYMENT_METHODS}
100
+ ${DISPATCH_VENDOR_FORM_TRY_SUBMIT}
101
+ ${DISPATCH_UNSAVED_CHANGES_ACTION}
102
+ ${DISPATCH_BILL_ACTION_RESULT}
45
103
  ${LISTENERS.unitWhiteLabelAppOnLoad}
46
104
  ${LISTENERS.unitCounterpartyCreated}
47
105
  `;
@@ -0,0 +1,8 @@
1
+ export enum BalanceSummaryMessage {
2
+ UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE = 'unitRequestDateRangeMenuValueChange'
3
+ }
4
+
5
+ export type RequestDateRangeMenuValueChangeEvent = string
6
+
7
+ export type BalanceSummaryEvent =
8
+ | RequestDateRangeMenuValueChangeEvent
@@ -0,0 +1,13 @@
1
+ export enum BillActionsMessage {
2
+ UNIT_BILL_ARCHIVED = 'unitBillArchived',
3
+ UNIT_BILL_MARK_AS_PAID = 'unitBillMarkAsPaid',
4
+ UNIT_BILL_MARK_AS_UNPAID = 'unitBillMarkAsUnpaid',
5
+ UNIT_BILL_RESCHEDULED = 'unitBillRescheduled',
6
+ UNIT_BILL_CHECK_CANCELLED = 'unitBillCheckCancelled',
7
+ UNIT_BILL_REFUNDED = 'unitBillRefunded'
8
+ }
9
+
10
+ export const billActionResultMessages = Object.values(BillActionsMessage);
11
+
12
+ // Each bill action result event carries the affected billId as its detail.
13
+ export type BillActionResultEvent = string;
@@ -0,0 +1,8 @@
1
+ export enum BillPayBillsMessage {
2
+ UNIT_BILLS_FILTERS_CHANGED = 'unitBillsFiltersChanged'
3
+ }
4
+
5
+ export type BillsFiltersChangedEvent = string
6
+
7
+ export type BillPayBillsEvent =
8
+ | BillsFiltersChangedEvent
@@ -0,0 +1,16 @@
1
+ export enum BillPayMenuMessage {
2
+ UNIT_REQUEST_EDIT_BILL = 'unitRequestEditBill',
3
+ UNIT_REQUEST_CREATE_MANUAL_BILL_PAY = 'unitRequestCreateManualBillPay',
4
+ UNIT_REQUEST_OPEN_ARCHIVED_BILLS = 'unitRequestOpenArchivedBills',
5
+ UNIT_REQUEST_OPEN_VENDORS = 'unitRequestOpenVendors',
6
+ UNIT_REQUEST_OPEN_PAYMENT_METHODS = 'unitRequestOpenPaymentMethods'
7
+ }
8
+
9
+ export interface RequestEditBillEvent {
10
+ billId: string;
11
+ [key: string]: unknown;
12
+ }
13
+
14
+ export type BillPayMenuEvent =
15
+ | RequestEditBillEvent
16
+ | null
@@ -13,6 +13,12 @@ import { PlaidEvent, PlaidMessage } from './plaidMessages';
13
13
  import { PayeeManagementMessage, PayeeManagementEvent } from './payeeManagementMessage';
14
14
  import { MultiFactorAuthenticationMessage } from './multiFactorAuthenticationMessage';
15
15
  import { WirePaymentCreatedEvent } from './wirePaymentMessage';
16
+ import { BillPayMenuMessage, BillPayMenuEvent } from './billPayMenuMessage';
17
+ import { BillActionsMessage, BillActionResultEvent } from './billActionsMessage';
18
+ import { BillPayBillsMessage, BillPayBillsEvent } from './billPayBillsMessage';
19
+ import { BalanceSummaryMessage, BalanceSummaryEvent } from './balanceSummaryMessage';
20
+ import { VendorFormMessage, VendorFormEvent } from './vendorFormMessage';
21
+ import { UnsavedChangesMessage, UnsavedChangesEvent } from './unsavedChangesMessage';
16
22
 
17
23
  export type WebViewMessageType =
18
24
  | PageMessage
@@ -26,6 +32,12 @@ export type WebViewMessageType =
26
32
  | PlaidMessage
27
33
  | PayeeManagementMessage
28
34
  | MultiFactorAuthenticationMessage
35
+ | BillPayMenuMessage
36
+ | BillActionsMessage
37
+ | BillPayBillsMessage
38
+ | BalanceSummaryMessage
39
+ | VendorFormMessage
40
+ | UnsavedChangesMessage
29
41
 
30
42
  type WebViewEvent =
31
43
  | PageEvent
@@ -43,6 +55,12 @@ type WebViewEvent =
43
55
  | PayeeManagementEvent
44
56
  | WirePaymentCreatedEvent
45
57
  | MultiFactorAuthenticationFinishedEvent
58
+ | BillPayMenuEvent
59
+ | BillActionResultEvent
60
+ | BillPayBillsEvent
61
+ | BalanceSummaryEvent
62
+ | VendorFormEvent
63
+ | UnsavedChangesEvent
46
64
 
47
65
  export interface WebViewMessage {
48
66
  type: WebViewMessageType,
@@ -91,6 +91,8 @@ export type UnitWhiteLabelAppEvent =
91
91
 
92
92
  export interface RequestExternalSdkEvent {
93
93
  type: string;
94
+ // White-label bank name forwarded from the web SDK, for the native Veryfi back-capture endorsement disclaimer
95
+ bankName?: string;
94
96
  }
95
97
 
96
98
  export type UnitEvent =
@@ -0,0 +1,10 @@
1
+ export enum UnsavedChangesMessage {
2
+ UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION = 'unitBillPayUnsavedChangesAction'
3
+ }
4
+
5
+ export interface UnsavedChangesActionEvent {
6
+ action: 'save' | 'discard' | 'cancel';
7
+ [key: string]: unknown;
8
+ }
9
+
10
+ export type UnsavedChangesEvent = UnsavedChangesActionEvent
@@ -0,0 +1,5 @@
1
+ export enum VendorFormMessage {
2
+ UNIT_VENDOR_FORM_TRY_SUBMIT = 'unitVendorFormTrySubmit'
3
+ }
4
+
5
+ export type VendorFormEvent = null
@@ -10,6 +10,12 @@ import { MultipleCardsMessage } from '../../messages/webMessages/multipleCardsMe
10
10
  import { VeryfiMessage } from '../../messages/webMessages/veryfiMessages';
11
11
  import { WebComponentType } from '../../types/internal/webComponent.types';
12
12
  import { UserDataKeys } from '../../types/internal/unitStore.types';
13
+ import { BillPayMenuMessage } from '../../messages/webMessages/billPayMenuMessage';
14
+ import { billActionResultMessages } from '../../messages/webMessages/billActionsMessage';
15
+ import { BillPayBillsMessage } from '../../messages/webMessages/billPayBillsMessage';
16
+ import { BalanceSummaryMessage } from '../../messages/webMessages/balanceSummaryMessage';
17
+ import { VendorFormMessage } from '../../messages/webMessages/vendorFormMessage';
18
+ import { UnsavedChangesMessage } from '../../messages/webMessages/unsavedChangesMessage';
13
19
 
14
20
  export const POST_MESSAGE_TO_SDK = `
15
21
  const postMessageToSDK = (message) => {
@@ -175,6 +181,16 @@ export const LISTENERS = {
175
181
  postMessageToSDK({ type: "${MultipleCardsMessage.UNIT_MULTIPLE_CARDS_FILTERS_CHANGED}", details: e.detail })
176
182
  });
177
183
  `,
184
+ unitBillsFiltersChanged: `
185
+ window.addEventListener("${BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED}", (e) => {
186
+ postMessageToSDK({ type: "${BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED}", details: e.detail })
187
+ });
188
+ `,
189
+ unitRequestDateRangeMenuValueChange: `
190
+ window.addEventListener("${BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE}", (e) => {
191
+ postMessageToSDK({ type: "${BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE}", details: e.detail })
192
+ });
193
+ `,
178
194
  unitMultiFactorAuthFinished: `
179
195
  window.addEventListener("${UnitComponentsMessage.UNIT_MULTI_FACTOR_AUTH_FINISHED}", async (e) => {
180
196
  const response = await e.detail.response;
@@ -283,6 +299,55 @@ export const LISTENERS = {
283
299
  if (e.detail?.fromSDK) { return }
284
300
  postMessageToSDK({ type: "${AccountMessage.UNIT_ACCOUNT_CREATION_ACTIONS_OPEN_PLAID_FOR_LINK_EXTERNAL_ACCOUNT}" })
285
301
  });
302
+ `,
303
+ unitRequestEditBill: `
304
+ window.addEventListener("${BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL}", (e) => {
305
+ if (e.detail?.fromSDK) { return }
306
+ postMessageToSDK({ type: "${BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL}", details: e.detail })
307
+ });
308
+ `,
309
+ unitRequestCreateManualBillPay: `
310
+ window.addEventListener("${BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY}", (e) => {
311
+ if (e.detail?.fromSDK) { return }
312
+ postMessageToSDK({ type: "${BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY}" })
313
+ });
314
+ `,
315
+ unitRequestOpenArchivedBills: `
316
+ window.addEventListener("${BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS}", (e) => {
317
+ if (e.detail?.fromSDK) { return }
318
+ postMessageToSDK({ type: "${BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS}" })
319
+ });
320
+ `,
321
+ unitRequestOpenVendors: `
322
+ window.addEventListener("${BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS}", (e) => {
323
+ if (e.detail?.fromSDK) { return }
324
+ postMessageToSDK({ type: "${BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS}" })
325
+ });
326
+ `,
327
+ unitRequestOpenPaymentMethods: `
328
+ window.addEventListener("${BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS}", (e) => {
329
+ if (e.detail?.fromSDK) { return }
330
+ postMessageToSDK({ type: "${BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS}" })
331
+ });
332
+ `,
333
+ unitVendorFormTrySubmit: `
334
+ window.addEventListener("${VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT}", (e) => {
335
+ if (e.detail?.fromSDK) { return }
336
+ postMessageToSDK({ type: "${VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT}" })
337
+ });
338
+ `,
339
+ unitBillPayUnsavedChangesAction: `
340
+ window.addEventListener("${UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION}", (e) => {
341
+ if (e.detail?.fromSDK) { return }
342
+ postMessageToSDK({ type: "${UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION}", details: e.detail })
343
+ });
344
+ `,
345
+ unitBillActionResults: `
346
+ ${JSON.stringify(billActionResultMessages)}.forEach((eventName) => {
347
+ window.addEventListener(eventName, (e) => {
348
+ postMessageToSDK({ type: eventName, details: e.detail })
349
+ });
350
+ });
286
351
  `
287
352
  };
288
353
 
@@ -346,6 +411,20 @@ export const DISPATCH_MULTIPLE_CARDS_FILTER_CHANGED_EVENT = `
346
411
  }
347
412
  `;
348
413
 
414
+ export const DISPATCH_BILLS_FILTER_CHANGED_EVENT = `
415
+ const dispatchBillsFilterChangedEvent = (details) => {
416
+ const event = new CustomEvent("${BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED}",{ detail: details });
417
+ window.dispatchEvent(event);
418
+ }
419
+ `;
420
+
421
+ export const DISPATCH_DATE_RANGE_MENU_VALUE_CHANGE_EVENT = `
422
+ const dispatchDateRangeMenuValueChangeEvent = (details) => {
423
+ const event = new CustomEvent("${BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE}", { detail: details });
424
+ window.dispatchEvent(event);
425
+ }
426
+ `;
427
+
349
428
  export const DISPATCH_CARD_CREATED_EVENT = `
350
429
  const dispatchCardCreatedEvent = (details) => {
351
430
  // Add fromSDK to avoid infinite loop
@@ -435,3 +514,58 @@ export const DISPATCH_COUNTERPARTY_DELETED = `
435
514
  window.dispatchEvent(event);
436
515
  }
437
516
  `;
517
+
518
+ export const DISPATCH_REQUEST_EDIT_BILL = `
519
+ const dispatchRequestEditBill = (details) => {
520
+ const event = new CustomEvent("${BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL}", { detail: { ...JSON.parse(details), fromSDK: true } });
521
+ window.dispatchEvent(event);
522
+ }
523
+ `;
524
+
525
+ export const DISPATCH_REQUEST_CREATE_MANUAL_BILL_PAY = `
526
+ const dispatchRequestCreateManualBillPay = () => {
527
+ const event = new CustomEvent("${BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY}", { detail: { fromSDK: true } });
528
+ window.dispatchEvent(event);
529
+ }
530
+ `;
531
+
532
+ export const DISPATCH_REQUEST_OPEN_ARCHIVED_BILLS = `
533
+ const dispatchRequestOpenArchivedBills = () => {
534
+ const event = new CustomEvent("${BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS}", { detail: { fromSDK: true } });
535
+ window.dispatchEvent(event);
536
+ }
537
+ `;
538
+
539
+ export const DISPATCH_REQUEST_OPEN_VENDORS = `
540
+ const dispatchRequestOpenVendors = () => {
541
+ const event = new CustomEvent("${BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS}", { detail: { fromSDK: true } });
542
+ window.dispatchEvent(event);
543
+ }
544
+ `;
545
+
546
+ export const DISPATCH_REQUEST_OPEN_PAYMENT_METHODS = `
547
+ const dispatchRequestOpenPaymentMethods = () => {
548
+ const event = new CustomEvent("${BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS}", { detail: { fromSDK: true } });
549
+ window.dispatchEvent(event);
550
+ }
551
+ `;
552
+
553
+ export const DISPATCH_VENDOR_FORM_TRY_SUBMIT = `
554
+ const dispatchVendorFormTrySubmit = () => {
555
+ const event = new CustomEvent("${VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT}", { detail: { fromSDK: true } });
556
+ window.dispatchEvent(event);
557
+ }
558
+ `;
559
+
560
+ export const DISPATCH_UNSAVED_CHANGES_ACTION = `
561
+ const dispatchUnsavedChangesAction = (details) => {
562
+ const event = new CustomEvent("${UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION}", { detail: { ...JSON.parse(details), fromSDK: true } });
563
+ window.dispatchEvent(event);
564
+ }
565
+ `;
566
+
567
+ export const DISPATCH_BILL_ACTION_RESULT = `
568
+ const dispatchBillActionResult = (eventName, billId) => {
569
+ window.dispatchEvent(new CustomEvent(eventName, { detail: billId }));
570
+ }
571
+ `;
@@ -29,8 +29,18 @@ const CHECK_SETTINGS = {
29
29
  originalImageMaxSizeInMB: 1.4,
30
30
  };
31
31
 
32
+ // Veryfi's default English back-capture modal string; overridden to append the endorsement.
33
+ const BACK_CAPTURE_MODAL_KEY = 'Capture the back side of the check?';
34
+
35
+ const buildEndorsement = (bankName?: string): string => {
36
+ const bank = bankName?.trim();
37
+ // Bank-agnostic fallback when the bank name is absent, so the copy never reads "...deposit at ".
38
+ return `Please make sure to sign the back and write “For mobile deposit ${bank ? `at ${bank}` : 'only'}”`;
39
+ };
40
+
32
41
  export const configureAndShowVeryfiCamera = (
33
42
  credentials: UNVeryfiCredentials,
43
+ bankName: string | undefined,
34
44
  onImages: (images: UNVeryfiImage[]) => void,
35
45
  onError: (error: string) => void
36
46
  ): void => {
@@ -117,7 +127,17 @@ export const configureAndShowVeryfiCamera = (
117
127
  url: credentials.url,
118
128
  };
119
129
 
120
- VeryfiLens.configureWithCredentials(veryfiCredentials, CHECK_SETTINGS, () => {
130
+ const endorsement = buildEndorsement(bankName);
131
+ const settings = {
132
+ ...CHECK_SETTINGS,
133
+ customLensStrings: {
134
+ en: {
135
+ [BACK_CAPTURE_MODAL_KEY]: `${BACK_CAPTURE_MODAL_KEY}\n\n${endorsement}`,
136
+ },
137
+ },
138
+ };
139
+
140
+ VeryfiLens.configureWithCredentials(veryfiCredentials, settings, () => {
121
141
  VeryfiLens.showCamera();
122
142
  });
123
143
  };
@@ -3,8 +3,8 @@ import { UNComponentsSecuritySettings, UNComponentsSnapshotProtectionStrategy }
3
3
 
4
4
  const WEB_SDK_RECOMMENDED_STRATEGY: UNComponentsWebVersioningStrategy = {
5
5
  type: UNVersioningStrategyType.upToNextMinor,
6
- major: 3,
7
- minor: 6,
6
+ major: 4,
7
+ minor: 0,
8
8
  };
9
9
 
10
10
  const DEFAULT_SECURITY_SETTINGS: UNComponentsSecuritySettings = {
@@ -27,7 +27,7 @@ export class UnitComponentsSDK {
27
27
  protected static fonts?: UNFonts;
28
28
  protected static signedNonce?: string;
29
29
  protected static pushProvisionModule?: typeof NativeModules;
30
- protected static sdkVersion = '3.3.0-beta.3';
30
+ protected static sdkVersion = '3.4.0';
31
31
  static iosFontBase64Map: Record<string, string> = {};
32
32
 
33
33
  public static init = async (