@zeniai/client-epic-state 4.19.59 → 4.19.60

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 (110) hide show
  1. package/lib/commonStateTypes/fileType.d.ts +1 -1
  2. package/lib/entity/chargeCardRepayment/chargeCardRepayment.d.ts +1 -6
  3. package/lib/entity/chargeCardRepayment/chargeCardRepayment.js +1 -4
  4. package/lib/entity/chargeCardRepayment/chargeCardRepaymentPayload.d.ts +3 -8
  5. package/lib/entity/chargeCardRepayment/chargeCardRepaymentPayload.js +2 -5
  6. package/lib/entity/chargeCardTransaction/chargeCardTransaction.d.ts +2 -1
  7. package/lib/entity/chargeCardTransaction/chargeCardTransactionPayload.d.ts +1 -3
  8. package/lib/entity/chargeCardTransaction/chargeCardTransactionPayload.js +3 -26
  9. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.js +7 -11
  10. package/lib/entity/company/companyPayload.d.ts +0 -12
  11. package/lib/entity/company/companyPayload.js +0 -20
  12. package/lib/entity/company/companyStateTypes.d.ts +0 -12
  13. package/lib/epic.d.ts +1 -3
  14. package/lib/epic.js +1 -3
  15. package/lib/esm/entity/chargeCardRepayment/chargeCardRepayment.js +0 -2
  16. package/lib/esm/entity/chargeCardRepayment/chargeCardRepaymentPayload.js +3 -6
  17. package/lib/esm/entity/chargeCardTransaction/chargeCardTransactionPayload.js +3 -25
  18. package/lib/esm/entity/chargeCardTransaction/chargeCardTransactionReducer.js +7 -11
  19. package/lib/esm/entity/company/companyPayload.js +0 -20
  20. package/lib/esm/epic.js +1 -3
  21. package/lib/esm/index.js +5 -11
  22. package/lib/esm/reducer.js +0 -3
  23. package/lib/esm/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.js +1 -1
  24. package/lib/esm/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +0 -1
  25. package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +1 -1
  26. package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +1 -3
  27. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +3 -2
  28. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
  29. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +2 -20
  30. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +1 -11
  31. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +2 -4
  32. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +2 -5
  33. package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailSelector.js +6 -15
  34. package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/fetchChargeCardRepaymentDetailEpic.js +2 -3
  35. package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/initiateChargeCardRepaymentEpic.js +0 -5
  36. package/lib/esm/view/spendManagement/chargeCards/chargeCardSetUp/epic/fetchChargeCardSetupViewEpic.js +1 -1
  37. package/lib/esm/view/spendManagement/commonSetup/epic/setup/updateBusinessVerificationDetailsEpic.js +1 -64
  38. package/lib/esm/view/spendManagement/commonSetup/epic/setup/updateSetupViewLocalStoreDataEpic.js +1 -14
  39. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +1 -29
  40. package/lib/esm/view/spendManagement/reimbursement/remiDetailView/epics/fetchRemiDetailEpic.js +1 -0
  41. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +1 -10
  42. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewSelector.js +2 -4
  43. package/lib/esm/view/spendManagement/spendManagementFilterHelpers.js +2 -29
  44. package/lib/esm/view/spendManagement/zeniAccounts/depositAccountList/fetchDepositAccountListEpic.js +3 -5
  45. package/lib/index.d.ts +6 -12
  46. package/lib/index.js +13 -34
  47. package/lib/reducer.d.ts +0 -3
  48. package/lib/reducer.js +0 -3
  49. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  50. package/lib/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.js +1 -1
  51. package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +0 -1
  52. package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +1 -1
  53. package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +1 -3
  54. package/lib/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +3 -2
  55. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
  56. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +2 -20
  57. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +1 -1
  58. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +2 -12
  59. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +2 -4
  60. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelectorTypes.d.ts +0 -2
  61. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +0 -1
  62. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +0 -1
  63. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +2 -5
  64. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +0 -2
  65. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailSelector.js +4 -13
  66. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/fetchChargeCardRepaymentDetailEpic.js +2 -3
  67. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/initiateChargeCardRepaymentEpic.d.ts +1 -2
  68. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/initiateChargeCardRepaymentEpic.js +0 -5
  69. package/lib/view/spendManagement/chargeCards/chargeCardSetUp/epic/fetchChargeCardSetupViewEpic.js +1 -1
  70. package/lib/view/spendManagement/commonSetup/epic/setup/updateBusinessVerificationDetailsEpic.js +1 -64
  71. package/lib/view/spendManagement/commonSetup/epic/setup/updateSetupViewLocalStoreDataEpic.js +1 -14
  72. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +1 -15
  73. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +2 -31
  74. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +0 -13
  75. package/lib/view/spendManagement/commonSetup/types/businessVerification.d.ts +0 -13
  76. package/lib/view/spendManagement/reimbursement/remiDetailView/epics/fetchRemiDetailEpic.js +1 -0
  77. package/lib/view/spendManagement/reimbursement/remiDetailView/remiDetailViewPayload.d.ts +1 -0
  78. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +1 -1
  79. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +2 -11
  80. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewSelector.js +2 -4
  81. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewSelectorTypes.d.ts +0 -2
  82. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +0 -1
  83. package/lib/view/spendManagement/spendManagementFilterHelpers.d.ts +4 -6
  84. package/lib/view/spendManagement/spendManagementFilterHelpers.js +2 -29
  85. package/lib/view/spendManagement/zeniAccounts/depositAccountList/fetchDepositAccountListEpic.js +3 -5
  86. package/package.json +1 -1
  87. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.js +0 -32
  88. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.js +0 -22
  89. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.js +0 -79
  90. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryPayload.js +0 -1
  91. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +0 -83
  92. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.js +0 -104
  93. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentHistoryEpic.js +0 -31
  94. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +0 -31
  95. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.d.ts +0 -50
  96. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.js +0 -35
  97. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.d.ts +0 -8
  98. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector.js +0 -26
  99. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.d.ts +0 -7
  100. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryHelpers.js +0 -87
  101. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryPayload.d.ts +0 -13
  102. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryPayload.js +0 -2
  103. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.d.ts +0 -19
  104. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +0 -87
  105. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.d.ts +0 -24
  106. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector.js +0 -108
  107. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentHistoryEpic.d.ts +0 -9
  108. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentHistoryEpic.js +0 -35
  109. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.d.ts +0 -7
  110. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +0 -35
@@ -63,19 +63,6 @@ export interface CompanyDetailsVerificationPayload {
63
63
  source_of_funds: string;
64
64
  sync_token: string;
65
65
  tax_id: string;
66
- company_countries_of_operations?: string[];
67
- company_inc_state?: string | null;
68
- company_industry_sub_type?: string;
69
- company_purpose_of_account?: string;
70
- company_purpose_of_account_desc?: string;
71
- company_regulated_states?: boolean;
72
- company_regulated_states_desc?: string;
73
- company_source_of_funds?: string;
74
- company_source_of_funds_desc?: string;
75
- company_transaction_vol_expectations?: string;
76
- company_transaction_vol_expectations_desc?: string;
77
- company_us_nexus?: boolean;
78
- company_us_nexus_desc?: string[];
79
66
  subscription_billing_address?: AddressUpdatableInfoPayload;
80
67
  }
81
68
  export interface BusinessVerificationDataPayload {
@@ -44,6 +44,7 @@ const fetchRemiDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, ope
44
44
  const query = {
45
45
  transaction_type: 'reimbursement',
46
46
  reimbursement_provider: 'zeni',
47
+ is_include_payment_accounts_info: true,
47
48
  is_include_approval_info: true,
48
49
  is_include_deleted: isShowDeletedReimbursementEnabled,
49
50
  };
@@ -22,6 +22,7 @@ export interface RemiDetailViewPayload {
22
22
  }
23
23
  interface RemiDetailQuery {
24
24
  is_include_approval_info: boolean;
25
+ is_include_payment_accounts_info: boolean;
25
26
  reimbursement_provider: string;
26
27
  }
27
28
  export interface DuplicateLinePayload {
@@ -40,6 +40,6 @@ export declare const fetchRemiSetupApproverView: import("@reduxjs/toolkit").Acti
40
40
  approvalRuleId: string | undefined;
41
41
  }, "remiSetupApproverView/initializeRemiSetupApproverViewUpdateData", never, never>, saveRemiSetupApproverViewUpdateData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[remiSetupApproverViewUpdateData: Partial<ApprovalRuleUpdateData | ApprovalRuleCreateData>], {
42
42
  remiSetupApproverViewUpdateData: Partial<ApprovalRuleUpdateData | ApprovalRuleCreateData>;
43
- }, "remiSetupApproverView/saveRemiSetupApproverViewUpdateData", never, never>, setListeningToPusherEvent: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "remiSetupApproverView/setListeningToPusherEvent">, clearRemiSetupApproverViewUpdateData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/clearRemiSetupApproverViewUpdateData">, clearRemiSetupApproverView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/clearRemiSetupApproverView">;
43
+ }, "remiSetupApproverView/saveRemiSetupApproverViewUpdateData", never, never>, clearRemiSetupApproverViewUpdateData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/clearRemiSetupApproverViewUpdateData">, clearRemiSetupApproverView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/clearRemiSetupApproverView">;
44
44
  declare const _default: import("redux").Reducer<RemiSetupApproverViewState>;
45
45
  export default _default;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.setListeningToPusherEvent = exports.saveRemiSetupApproverViewUpdateData = exports.initializeRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdatesFailure = exports.saveRemiSetupApproverViewUpdatesSuccess = exports.saveRemiSetupApproverViewUpdates = exports.deleteRemiApprovalRuleFailure = exports.deleteRemiApprovalRuleSuccess = exports.deleteRemiApprovalRule = exports.fetchRemiApproversListFailure = exports.fetchRemiApproversListSuccess = exports.fetchRemiApproversList = exports.fetchRemiApproversDetails = exports.fetchRemiSetupApproverViewFailure = exports.fetchRemiSetupApproverViewSuccess = exports.fetchRemiSetupApproverView = exports.initialState = void 0;
4
+ exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdateData = exports.initializeRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdatesFailure = exports.saveRemiSetupApproverViewUpdatesSuccess = exports.saveRemiSetupApproverViewUpdates = exports.deleteRemiApprovalRuleFailure = exports.deleteRemiApprovalRuleSuccess = exports.deleteRemiApprovalRule = exports.fetchRemiApproversListFailure = exports.fetchRemiApproversListSuccess = exports.fetchRemiApproversList = exports.fetchRemiApproversDetails = exports.fetchRemiSetupApproverViewFailure = exports.fetchRemiSetupApproverViewSuccess = exports.fetchRemiSetupApproverView = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  exports.initialState = {
7
7
  fetchState: 'Not-Started',
8
8
  error: undefined,
9
- listeningToPusherEvent: false,
10
9
  approverListState: {
11
10
  approverIds: [],
12
11
  attributes: [],
@@ -181,11 +180,6 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
181
180
  reducer(draft, action) {
182
181
  const { approvalRuleIds } = action.payload;
183
182
  if (draft.remiSetupApproverViewUpdateData != null) {
184
- if (draft.remiSetupApproverViewUpdateData.type === 'approval_update' &&
185
- draft.remiSetupApproverViewUpdateData.data
186
- ?.isApplicableOnPendingApprovalEntity === true) {
187
- draft.listeningToPusherEvent = true;
188
- }
189
183
  draft.remiSetupApproverViewUpdateData.updateStatus = {
190
184
  fetchState: 'Completed',
191
185
  error: undefined,
@@ -246,9 +240,6 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
246
240
  return { payload: { remiSetupApproverViewUpdateData } };
247
241
  },
248
242
  },
249
- setListeningToPusherEvent(draft, action) {
250
- draft.listeningToPusherEvent = action.payload;
251
- },
252
243
  clearRemiSetupApproverViewUpdateData(draft) {
253
244
  if (draft.remiSetupApproverViewUpdateData != null) {
254
245
  draft.remiSetupApproverViewUpdateData.data = undefined;
@@ -259,5 +250,5 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
259
250
  },
260
251
  },
261
252
  });
262
- _a = remiSetupApproverView.actions, exports.fetchRemiSetupApproverView = _a.fetchRemiSetupApproverView, exports.fetchRemiSetupApproverViewSuccess = _a.fetchRemiSetupApproverViewSuccess, exports.fetchRemiSetupApproverViewFailure = _a.fetchRemiSetupApproverViewFailure, exports.fetchRemiApproversDetails = _a.fetchRemiApproversDetails, exports.fetchRemiApproversList = _a.fetchRemiApproversList, exports.fetchRemiApproversListSuccess = _a.fetchRemiApproversListSuccess, exports.fetchRemiApproversListFailure = _a.fetchRemiApproversListFailure, exports.deleteRemiApprovalRule = _a.deleteRemiApprovalRule, exports.deleteRemiApprovalRuleSuccess = _a.deleteRemiApprovalRuleSuccess, exports.deleteRemiApprovalRuleFailure = _a.deleteRemiApprovalRuleFailure, exports.saveRemiSetupApproverViewUpdates = _a.saveRemiSetupApproverViewUpdates, exports.saveRemiSetupApproverViewUpdatesSuccess = _a.saveRemiSetupApproverViewUpdatesSuccess, exports.saveRemiSetupApproverViewUpdatesFailure = _a.saveRemiSetupApproverViewUpdatesFailure, exports.initializeRemiSetupApproverViewUpdateData = _a.initializeRemiSetupApproverViewUpdateData, exports.saveRemiSetupApproverViewUpdateData = _a.saveRemiSetupApproverViewUpdateData, exports.setListeningToPusherEvent = _a.setListeningToPusherEvent, exports.clearRemiSetupApproverViewUpdateData = _a.clearRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverView = _a.clearRemiSetupApproverView;
253
+ _a = remiSetupApproverView.actions, exports.fetchRemiSetupApproverView = _a.fetchRemiSetupApproverView, exports.fetchRemiSetupApproverViewSuccess = _a.fetchRemiSetupApproverViewSuccess, exports.fetchRemiSetupApproverViewFailure = _a.fetchRemiSetupApproverViewFailure, exports.fetchRemiApproversDetails = _a.fetchRemiApproversDetails, exports.fetchRemiApproversList = _a.fetchRemiApproversList, exports.fetchRemiApproversListSuccess = _a.fetchRemiApproversListSuccess, exports.fetchRemiApproversListFailure = _a.fetchRemiApproversListFailure, exports.deleteRemiApprovalRule = _a.deleteRemiApprovalRule, exports.deleteRemiApprovalRuleSuccess = _a.deleteRemiApprovalRuleSuccess, exports.deleteRemiApprovalRuleFailure = _a.deleteRemiApprovalRuleFailure, exports.saveRemiSetupApproverViewUpdates = _a.saveRemiSetupApproverViewUpdates, exports.saveRemiSetupApproverViewUpdatesSuccess = _a.saveRemiSetupApproverViewUpdatesSuccess, exports.saveRemiSetupApproverViewUpdatesFailure = _a.saveRemiSetupApproverViewUpdatesFailure, exports.initializeRemiSetupApproverViewUpdateData = _a.initializeRemiSetupApproverViewUpdateData, exports.saveRemiSetupApproverViewUpdateData = _a.saveRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverViewUpdateData = _a.clearRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverView = _a.clearRemiSetupApproverView;
263
254
  exports.default = remiSetupApproverView.reducer;
@@ -13,7 +13,7 @@ const userSelector_1 = require("../../../../entity/user/userSelector");
13
13
  const userRoleSelector_1 = require("../../../../entity/userRole/userRoleSelector");
14
14
  const getRemiSetupApproverView = (state, filterAdmins = true) => {
15
15
  const { remiSetupApproverViewState, approvalRuleState, userState } = state;
16
- const { approvalRulesDeleteStatusById, approvalRuleIds, fetchState, error, listeningToPusherEvent, } = remiSetupApproverViewState;
16
+ const { approvalRulesDeleteStatusById, approvalRuleIds, fetchState, error } = remiSetupApproverViewState;
17
17
  const deleteStateList = Object.values(approvalRulesDeleteStatusById);
18
18
  const approvalRules = (0, approvalRuleSelector_1.getApprovalRulesByIds)(approvalRuleState, approvalRuleIds);
19
19
  const allApprovalRules = approvalRules.map((approvalRule) => {
@@ -48,12 +48,11 @@ const getRemiSetupApproverView = (state, filterAdmins = true) => {
48
48
  approvalRulesStatus,
49
49
  fetchState,
50
50
  error,
51
- listeningToPusherEvent,
52
51
  };
53
52
  };
54
53
  exports.getRemiSetupApproverView = getRemiSetupApproverView;
55
54
  exports.getRemiSetupApproverUpdateDataView = (0, toolkit_1.createSelector)((state) => state.remiSetupApproverViewState, (state) => state.approvalRuleState, (state) => state.classState, (state) => state.classListState, (state) => state.userState, (state) => state.userRoleState, (remiSetupApproverViewState, approvalRuleState, classState, classListState, userState, userRoleState) => {
56
- const { approvalRuleIds, approverListState, remiSetupApproverViewUpdateData, fetchState, error, listeningToPusherEvent, } = remiSetupApproverViewState;
55
+ const { approvalRuleIds, approverListState, remiSetupApproverViewUpdateData, fetchState, error, } = remiSetupApproverViewState;
57
56
  const { approverIds, attributes, fetchStatus } = approverListState;
58
57
  const { fetchState: classListFetchState, error: classListFetchStateError, classIds, } = classListState;
59
58
  const allApprovalRules = (0, approvalRuleSelector_1.getApprovalRulesByIds)(approvalRuleState, approvalRuleIds).map((approvalRule) => {
@@ -121,6 +120,5 @@ exports.getRemiSetupApproverUpdateDataView = (0, toolkit_1.createSelector)((stat
121
120
  ]),
122
121
  fetchState,
123
122
  error,
124
- listeningToPusherEvent,
125
123
  };
126
124
  });
@@ -17,7 +17,6 @@ export interface RemiSetupApproverView extends SelectorView {
17
17
  allApprovalRules: ApprovalRuleWithUser[];
18
18
  approvalRulesStatus: AllowedValueWithCode;
19
19
  deleteStatus: FetchStateAndError;
20
- listeningToPusherEvent?: boolean;
21
20
  }
22
21
  export interface RemiSetupApproverUpdateDataView extends SelectorView {
23
22
  allAccountingClasses: Class[];
@@ -27,6 +26,5 @@ export interface RemiSetupApproverUpdateDataView extends SelectorView {
27
26
  approversDetailsFetchStatus: FetchStateAndError;
28
27
  filteredApprovers: UserAndRole[];
29
28
  filteredAttributes: AttributeType[];
30
- listeningToPusherEvent?: boolean;
31
29
  remiSetupApproverViewUpdateData?: ApproverViewUpdateData;
32
30
  }
@@ -10,6 +10,5 @@ export interface RemiSetupApproverViewState extends FetchedState {
10
10
  fetchStatus: FetchStateAndError;
11
11
  attributeSubTypeToUserIdMapping?: Record<AttributeType, ID>;
12
12
  };
13
- listeningToPusherEvent?: boolean;
14
13
  remiSetupApproverViewUpdateData?: ApproverViewUpdateData;
15
14
  }
@@ -6,12 +6,10 @@ import { TaskListFilterCategoryField, TaskListFilters } from '../taskManager/tas
6
6
  import { TaskWithUserDetails } from '../taskManager/taskListView/taskListSelector';
7
7
  import { BillTransactionView } from './billPay/billList/billListSelector';
8
8
  import { BillListViewFilterCategoryField, BillPayFilters } from './billPay/billList/billListState';
9
- import { PaymentHistoryFilterCategoryDropdownOption, PaymentHistoryFilters } from './chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory';
10
- import { ChargeCardRepaymentWithUser } from './chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistorySelector';
11
9
  import { ReimbursementView } from './reimbursement/remiListView/remiListSelector';
12
10
  import { ReimbursementFilters, RemiListViewFilterCategoryField } from './reimbursement/remiListView/remiListState';
13
- export type SpendManagementFiltersType = BillPayFilters | ReimbursementFilters | TaskListFilters | PaymentHistoryFilters;
14
- export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management' | 'charge_card_payment_history';
11
+ export type SpendManagementFiltersType = BillPayFilters | ReimbursementFilters | TaskListFilters;
12
+ export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management';
15
13
  export type FilterCategoryType = 'searchAutocomplete' | 'user' | 'dateRange' | 'numberRange' | 'dropdown';
16
14
  export interface MatchingOperatorDropdownOption {
17
15
  label: 'is' | 'is not';
@@ -33,9 +31,9 @@ export interface TaskFilterCategoryDropdownOption {
33
31
  multiple?: boolean;
34
32
  type?: FilterCategoryType;
35
33
  }
36
- export type SpendManagementFilterCategoryDropdownOption = BillPayFilterCategoryDropdownOption | ReimbursementFilterCategoryDropdownOption | TaskFilterCategoryDropdownOption | PaymentHistoryFilterCategoryDropdownOption;
34
+ export type SpendManagementFilterCategoryDropdownOption = BillPayFilterCategoryDropdownOption | ReimbursementFilterCategoryDropdownOption | TaskFilterCategoryDropdownOption;
37
35
  export type FilterCategoryValueType = string | number | ZeniDate;
38
- export declare const applyAdvancedFiltersOnList: (entity: SpendManagementFilterEntityType, allItems: BillTransactionView[] | ReimbursementView[] | TaskWithUserDetails[] | ChargeCardRepaymentWithUser[], filters?: BillPayFilters | ReimbursementFilters | TaskListFilters | PaymentHistoryFilters, filteredItems?: (BillTransactionView | ReimbursementView | TaskWithUserDetails | ChargeCardRepaymentWithUser)[], index?: number) => (BillTransactionView | ReimbursementView | TaskWithUserDetails | ChargeCardRepaymentWithUser)[];
36
+ export declare const applyAdvancedFiltersOnList: (entity: SpendManagementFilterEntityType, allItems: BillTransactionView[] | ReimbursementView[] | TaskWithUserDetails[], filters?: BillPayFilters | ReimbursementFilters | TaskListFilters, filteredItems?: (BillTransactionView | ReimbursementView | TaskWithUserDetails)[], index?: number) => (BillTransactionView | ReimbursementView | TaskWithUserDetails)[];
39
37
  export declare const isBillListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;
40
38
  export declare const isRemiListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;
41
39
  export declare const hideCreatedByFilter: (userRole: UserRoleType[]) => boolean;
@@ -72,17 +72,10 @@ const filterItemOnCategoriesWithMultipleValues = (categoryValue, currentFilter)
72
72
  return true;
73
73
  }
74
74
  };
75
- const getItemId = (item) => {
76
- if ('cardRepaymentId' in item) {
77
- return item.cardRepaymentId;
78
- }
79
- return item
80
- .id;
81
- };
82
75
  const removeDuplicatesFromList = (list) => {
83
76
  const foundIds = [];
84
77
  return list.filter((item) => {
85
- const itemId = getItemId(item);
78
+ const itemId = item.id;
86
79
  if (foundIds.indexOf(itemId) === -1) {
87
80
  foundIds.push(itemId);
88
81
  return true;
@@ -117,9 +110,7 @@ const applyAdvancedFiltersOnList = (entity, allItems, filters, filteredItems = [
117
110
  ? getCategoryValueForBill(key, item)
118
111
  : entity === 'reimbursement'
119
112
  ? getCategoryValueForReimbursement(key, item)
120
- : entity === 'task_management'
121
- ? getCategoryValueForTaskList(key, item)
122
- : getCategoryValueForPaymentHistory(key, item);
113
+ : getCategoryValueForTaskList(key, item);
123
114
  if (categoryValue == null) {
124
115
  if (currentFilter.matchingOperator === 'not-equal') {
125
116
  return true;
@@ -139,7 +130,6 @@ const applyAdvancedFiltersOnList = (entity, allItems, filters, filteredItems = [
139
130
  'dueDate',
140
131
  'creationDate',
141
132
  'receiptDate',
142
- 'repaymentDate',
143
133
  ]);
144
134
  }
145
135
  });
@@ -241,23 +231,6 @@ const getCategoryValueForReimbursement = (key, reimbursement) => {
241
231
  return undefined;
242
232
  }
243
233
  };
244
- const getCategoryValueForPaymentHistory = (key, repayment) => {
245
- switch (key) {
246
- case 'repaymentDate':
247
- return repayment.repaymentDate;
248
- case 'sourceAccount': {
249
- return repayment.paymentAccountId;
250
- }
251
- case 'status':
252
- return repayment.status;
253
- case 'initiatedBy':
254
- return repayment.repaymentType === 'scheduled'
255
- ? 'autopay'
256
- : repayment.paidById;
257
- default:
258
- return undefined;
259
- }
260
- };
261
234
  const isBillListDownloadable = (state, currentTimePeriod) => {
262
235
  const { billListState, billTransactionState, entityApprovalStatusState, userState, } = state;
263
236
  const keys = billListState_1.ALL_BILL_TABS.filter((tab) => tab !== 'draft').map((tab) => (0, billListState_1.getBillListKey)(currentTimePeriod, tab));
@@ -11,13 +11,11 @@ const fetchDepositAccountListEpic = (actions$, _state$, zeniAPI) => actions$.pip
11
11
  return zeniAPI
12
12
  .getJSON(`${zeniAPI.apiEndPoints.bankingMicroServiceBaseUrl}/1.0/deposit-accounts?query=${encodeURIComponent(`{"is_include_deposit_accounts_summary":true}`)}`)
13
13
  .pipe((0, operators_1.mergeMap)((response) => {
14
- const isSuccess = (0, responsePayload_1.isSuccessResponse)(response);
15
- if (isSuccess) {
16
- const depositAccounts = response.data?.deposit_accounts ?? [];
17
- return (0, rxjs_1.of)((0, depositAccountReducer_1.updateDepositAccounts)(depositAccounts), (0, zeniAccountListReducer_1.updateZeniAccountsSummary)({
14
+ if ((0, responsePayload_1.isSuccessResponse)(response)) {
15
+ return (0, rxjs_1.of)((0, depositAccountReducer_1.updateDepositAccounts)(response.data?.deposit_accounts ?? []), (0, zeniAccountListReducer_1.updateZeniAccountsSummary)({
18
16
  summaryPayload: response.data?.all_deposit_accounts_summary,
19
17
  }), (0, depositAccountListReducer_1.updateDepositAccountList)({
20
- data: depositAccounts,
18
+ data: response.data?.deposit_accounts ?? [],
21
19
  updateType: 'replace',
22
20
  }));
23
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.19.59",
3
+ "version": "4.19.60",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -1,32 +0,0 @@
1
- export const PAYMENT_HISTORY_FILTER_CATEGORIES = [
2
- { value: 'repaymentDate', type: 'dateRange', multiple: true },
3
- { value: 'sourceAccount', multiple: true, type: 'dropdown' },
4
- { value: 'status', multiple: true, type: 'dropdown' },
5
- { value: 'initiatedBy', multiple: true, type: 'dropdown' },
6
- ];
7
- export const initialChargeCardPaymentHistoryState = {
8
- fetchState: 'Not-Started',
9
- error: undefined,
10
- creditAccountId: '',
11
- currencyCode: 'USD',
12
- currencySymbol: '$',
13
- downloadUIState: {
14
- downloadState: 'Not-Started',
15
- },
16
- filters: {
17
- categories: [],
18
- categoryCombinationOperator: 'AND',
19
- },
20
- isAutoPayEnabled: false,
21
- repaymentHistoryIds: [],
22
- searchText: '',
23
- totalRepayments: 0,
24
- repaymentHistoryXlsDownloadUrl: '',
25
- uiState: {
26
- sortKey: 'paymentDate',
27
- sortOrder: 'ascending',
28
- },
29
- hasValidState() {
30
- return this.fetchState === 'Completed';
31
- },
32
- };
@@ -1,22 +0,0 @@
1
- import { getChargeCardRepaymentByIds } from '../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector';
2
- import { getUsersByUserIds } from '../../../../entity/user/userSelector';
3
- import { applyPaymentHistoryFiltersSearchAndSort } from './chargeCardPaymentHistoryHelpers';
4
- export const getChargeCardPaymentHistoryDownloadReport = (state) => {
5
- const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState } = state;
6
- const { filters, repaymentHistoryIds, searchText, uiState, fetchState, error } = chargeCardPaymentHistoryState;
7
- const repaymentHistory = getChargeCardRepaymentByIds(chargeCardRepaymentState, repaymentHistoryIds);
8
- const repaymentHistoryUserIds = Array.from(new Set(repaymentHistory.map((r) => r.paidById)));
9
- const repaymentHistoryUsers = getUsersByUserIds(userState, repaymentHistoryUserIds);
10
- const userMap = new Map(repaymentHistoryUsers.map((user) => [user.userId, user]));
11
- const repaymentHistoryWithUsers = repaymentHistory.map((repayment) => ({
12
- ...repayment,
13
- paidByUser: userMap.get(repayment.paidById),
14
- }));
15
- const transactions = applyPaymentHistoryFiltersSearchAndSort(repaymentHistoryWithUsers, filters, searchText, uiState);
16
- return {
17
- reportTitle: 'Card Payment History',
18
- fetchState,
19
- error,
20
- transactions,
21
- };
22
- };
@@ -1,79 +0,0 @@
1
- import orderBy from 'lodash/orderBy';
2
- import { getUserName } from '../../../../entity/user/userSelector';
3
- import { applyAdvancedFiltersOnList } from '../../spendManagementFilterHelpers';
4
- export function getPaymentHistorySourceAccountName(repayment, accountInfoByAccountId) {
5
- const fromMap = repayment.paymentAccountId != null
6
- ? accountInfoByAccountId?.[repayment.paymentAccountId]?.depositAccountName
7
- : undefined;
8
- return fromMap ?? repayment.paymentAccountName ?? '';
9
- }
10
- export function getPaymentStatusDisplayText(status) {
11
- const statusMap = {
12
- PendingReview: 'In Progress',
13
- Pending: 'In Progress',
14
- Sent: 'Complete',
15
- Clear: 'Complete',
16
- Rejected: 'Failed',
17
- Returned: 'Failed',
18
- };
19
- return statusMap[status] ?? status;
20
- }
21
- function getPaymentHistorySortValue(repayment, sortKey, accountInfoByAccountId) {
22
- switch (sortKey) {
23
- case 'paymentDate':
24
- return repayment.repaymentDate.valueOf();
25
- case 'amount':
26
- return repayment.amount.amount;
27
- case 'paymentStatus':
28
- return getPaymentStatusDisplayText(repayment.status);
29
- case 'initiatedBy':
30
- return repayment.repaymentType === 'scheduled'
31
- ? 'autopay'
32
- : getUserName(repayment.paidByUser);
33
- case 'sourceAccount':
34
- return getPaymentHistorySourceAccountName(repayment, accountInfoByAccountId);
35
- default:
36
- return '';
37
- }
38
- }
39
- function sortPaymentHistory(repayments, sortKey, sortOrder, accountInfoByAccountId) {
40
- const getColumnWiseSortOrder = (sortOrder) => {
41
- // Note: For date and amount fields, the sort order is intentionally inverted.
42
- // This allows the UI to request 'ascending' sort to get the most recent dates
43
- // or largest amounts first, which is a more intuitive default for users.
44
- switch (sortKey) {
45
- case 'sourceAccount':
46
- case 'paymentStatus':
47
- case 'initiatedBy':
48
- return sortOrder === 'ascending' ? 'asc' : 'desc';
49
- default:
50
- return sortOrder === 'ascending' ? 'desc' : 'asc';
51
- }
52
- };
53
- const order = getColumnWiseSortOrder(sortOrder);
54
- return orderBy(repayments, (repayment) => getPaymentHistorySortValue(repayment, sortKey, accountInfoByAccountId), [order]);
55
- }
56
- function filterPaymentHistoryBySearchText(repayments, searchText, accountInfoByAccountId) {
57
- const loweredSearchText = searchText.trim().toLowerCase();
58
- if (loweredSearchText.length === 0) {
59
- return repayments;
60
- }
61
- return repayments.filter((repayment) => {
62
- const amountString = repayment.amount.amount.toString();
63
- const statusString = getPaymentStatusDisplayText(repayment.status).toLowerCase();
64
- const initiatedByString = repayment.repaymentType === 'scheduled'
65
- ? 'autopay'
66
- : getUserName(repayment.paidByUser);
67
- const accountNameString = getPaymentHistorySourceAccountName(repayment, accountInfoByAccountId).toLowerCase();
68
- return (amountString.includes(loweredSearchText) ||
69
- statusString.includes(loweredSearchText) ||
70
- initiatedByString.toLowerCase().includes(loweredSearchText) ||
71
- accountNameString.includes(loweredSearchText));
72
- });
73
- }
74
- export function applyPaymentHistoryFiltersSearchAndSort(repayments, filters, searchText, uiState, accountInfoByAccountId) {
75
- let result = applyAdvancedFiltersOnList('charge_card_payment_history', repayments, filters);
76
- result = filterPaymentHistoryBySearchText(result, searchText, accountInfoByAccountId);
77
- result = sortPaymentHistory(result, uiState.sortKey, uiState.sortOrder, accountInfoByAccountId);
78
- return result;
79
- }
@@ -1,83 +0,0 @@
1
- import { createSlice } from '@reduxjs/toolkit';
2
- import { initialChargeCardPaymentHistoryState, } from './chargeCardPaymentHistory';
3
- export const initialState = initialChargeCardPaymentHistoryState;
4
- const chargeCardPaymentHistory = createSlice({
5
- name: 'chargeCardPaymentHistory',
6
- initialState,
7
- reducers: {
8
- fetchChargeCardPaymentPage: {
9
- reducer() {
10
- // do nothing
11
- },
12
- prepare(cacheOverride = false) {
13
- return {
14
- payload: {
15
- cacheOverride,
16
- },
17
- };
18
- },
19
- },
20
- fetchChargeCardPaymentHistory(draft) {
21
- draft.fetchState = 'In-Progress';
22
- draft.error = undefined;
23
- },
24
- updateChargeCardPaymentHistory(draft, action) {
25
- const payload = action.payload;
26
- draft.creditAccountId = payload.credit_account_id;
27
- draft.currencyCode = payload.currency_code;
28
- draft.currencySymbol = payload.currency_symbol;
29
- draft.isAutoPayEnabled = payload.is_auto_pay_enabled;
30
- draft.repaymentHistoryIds = payload.repayment_history.map((repayment) => repayment.card_repayment_id);
31
- draft.totalRepayments = payload.total_repayments;
32
- draft.fetchState = 'Completed';
33
- draft.error = undefined;
34
- },
35
- updateChargeCardPaymentHistoryFailure(draft, action) {
36
- draft.fetchState = 'Error';
37
- draft.error = action.payload;
38
- },
39
- addRepaymentToChargeCardPaymentHistory(draft, action) {
40
- const { cardRepaymentId, zeniCreditAccountId } = action.payload;
41
- if (draft.creditAccountId !== zeniCreditAccountId) {
42
- return;
43
- }
44
- if (draft.repaymentHistoryIds.includes(cardRepaymentId)) {
45
- return;
46
- }
47
- draft.repaymentHistoryIds.unshift(cardRepaymentId);
48
- draft.totalRepayments += 1;
49
- },
50
- clearChargeCardPaymentHistory(draft) {
51
- Object.assign(draft, initialState);
52
- },
53
- updatePaymentHistoryFilters(draft, action) {
54
- if (action.payload.filters != null) {
55
- draft.filters = action.payload.filters;
56
- }
57
- },
58
- updatePaymentHistorySearchText(draft, action) {
59
- if (action.payload != null) {
60
- draft.searchText = action.payload;
61
- }
62
- },
63
- updatePaymentHistoryUIState(draft, action) {
64
- if (action.payload.uiState.sortKey != null) {
65
- draft.uiState.sortKey = action.payload.uiState.sortKey;
66
- }
67
- if (action.payload.uiState.sortOrder != null) {
68
- draft.uiState.sortOrder = action.payload.uiState.sortOrder;
69
- }
70
- if (action.payload.uiState.scrollYOffset != null) {
71
- draft.uiState.scrollYOffset = action.payload.uiState.scrollYOffset;
72
- }
73
- },
74
- updatePaymentHistoryDownloadUIState(draft, action) {
75
- if (action.payload.uiState.downloadState != null) {
76
- draft.downloadUIState.downloadState =
77
- action.payload.uiState.downloadState;
78
- }
79
- },
80
- },
81
- });
82
- export const { addRepaymentToChargeCardPaymentHistory, fetchChargeCardPaymentPage, fetchChargeCardPaymentHistory, updateChargeCardPaymentHistory, updateChargeCardPaymentHistoryFailure, clearChargeCardPaymentHistory, updatePaymentHistoryFilters, updatePaymentHistorySearchText, updatePaymentHistoryDownloadUIState, updatePaymentHistoryUIState, } = chargeCardPaymentHistory.actions;
83
- export default chargeCardPaymentHistory.reducer;
@@ -1,104 +0,0 @@
1
- import { reduceAllFetchState } from '../../../../commonStateTypes/reduceFetchState';
2
- import { getChargeCardRepaymentByIds } from '../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector';
3
- import { getDepositAccountByDepositAccountId } from '../../../../entity/depositAccount/depositAccountSelector';
4
- import { getPaymentAccountByPaymentAccountId } from '../../../../entity/paymentAccount/paymentAccountSelector';
5
- import { getUsersByUserIds } from '../../../../entity/user/userSelector';
6
- import { getAllFundingAccounts, mapDepositAccToFundingAccount, mapPaymentAccToFundingAccount, } from '../../commonSetup/setupViewSelector';
7
- import { getAllDepositAccounts } from '../../zeniAccounts/depositAccountList/depositAccountListSelector';
8
- import { getAllPaymentAccounts } from '../../zeniAccounts/paymentAccountList/paymentAccountListSelector';
9
- import { applyPaymentHistoryFiltersSearchAndSort } from './chargeCardPaymentHistoryHelpers';
10
- export const getChargeCardPaymentHistoryView = (state) => {
11
- const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, } = state;
12
- const { creditAccountId, currencyCode, currencySymbol, filters, isAutoPayEnabled, repaymentHistoryIds, searchText, totalRepayments, uiState, fetchState, error, } = chargeCardPaymentHistoryState;
13
- // Get the full repayment details from the entity state
14
- const repaymentHistory = getChargeCardRepaymentByIds(chargeCardRepaymentState, repaymentHistoryIds);
15
- const repaymentHistoryUserIds = Array.from(new Set(repaymentHistory.map((r) => r.paidById)));
16
- // Get users first to enrich repayments
17
- const repaymentHistoryUsers = getUsersByUserIds(userState, repaymentHistoryUserIds);
18
- // Create a map of userId -> User for quick lookup
19
- const userMap = new Map();
20
- repaymentHistoryUsers.forEach((user) => {
21
- userMap.set(user.userId, user);
22
- });
23
- // Enrich repayments with paidByUser details
24
- let repaymentHistoryWithUsers = repaymentHistory.map((repayment) => ({
25
- ...repayment,
26
- paidByUser: userMap.get(repayment.paidById),
27
- }));
28
- // Get deposit and payment accounts views (used for funding accounts and fetch state)
29
- const depositAccountsView = getAllDepositAccounts(depositAccountState, depositAccountListState);
30
- const paymentAccountsView = getAllPaymentAccounts(paymentAccountState, paymentAccountListState);
31
- // Extract unique funding account IDs from unfiltered repayment history (for accountInfoMap used in filter/sort)
32
- const repaymentHistoryFundingAccountIdsForMap = Array.from(new Set(repaymentHistory
33
- .map((repayment) => repayment.paymentAccountId)
34
- .filter((id) => id !== undefined && id !== null)));
35
- let fundingAccountsForMap = [];
36
- if (repaymentHistoryFundingAccountIdsForMap.length > 0) {
37
- const hasDepositData = depositAccountsView.fetchState === 'Completed';
38
- const hasPaymentData = paymentAccountsView.fetchState === 'Completed';
39
- if (hasDepositData || hasPaymentData) {
40
- const matchingDepositAccountsForMap = hasDepositData
41
- ? depositAccountsView.depositAccounts.filter((depositAccount) => repaymentHistoryFundingAccountIdsForMap.includes(depositAccount.id))
42
- : [];
43
- const matchingPaymentAccountsForMap = hasPaymentData
44
- ? paymentAccountsView.paymentAccounts.filter((paymentAccount) => repaymentHistoryFundingAccountIdsForMap.includes(paymentAccount.paymentAccountId))
45
- : [];
46
- fundingAccountsForMap = getAllFundingAccounts(matchingDepositAccountsForMap, matchingPaymentAccountsForMap, paymentAccountListState.paymentAccountBalanceFetchStatus, false);
47
- // Fallback: look up repayment-referenced accounts directly from entity stores
48
- // in case they're not in the list state (e.g. race condition, stale list)
49
- const existingIds = new Set(fundingAccountsForMap.map((fa) => fa.id).filter(Boolean));
50
- for (const accountId of repaymentHistoryFundingAccountIdsForMap) {
51
- if (existingIds.has(accountId)) {
52
- continue;
53
- }
54
- const depositAccount = getDepositAccountByDepositAccountId(depositAccountState, accountId);
55
- if (depositAccount != null) {
56
- fundingAccountsForMap.push(mapDepositAccToFundingAccount(depositAccount));
57
- existingIds.add(accountId);
58
- continue;
59
- }
60
- const paymentAccount = getPaymentAccountByPaymentAccountId(paymentAccountState, accountId);
61
- if (paymentAccount != null) {
62
- fundingAccountsForMap.push(mapPaymentAccToFundingAccount(paymentAccount, paymentAccountListState.paymentAccountBalanceFetchStatus));
63
- existingIds.add(accountId);
64
- }
65
- }
66
- }
67
- }
68
- const accountInfoByAccountId = {};
69
- fundingAccountsForMap.forEach((fa) => {
70
- if (fa.id != null) {
71
- accountInfoByAccountId[fa.id] = {
72
- accountId: fa.id,
73
- accountLogo: fa.logo,
74
- accountType: fa.accType === 'depositAccount' ? 'depositAccount' : 'paymentAccount',
75
- depositAccountLast4: fa.accountLast4,
76
- depositAccountName: fa.label,
77
- };
78
- }
79
- });
80
- repaymentHistoryWithUsers = applyPaymentHistoryFiltersSearchAndSort(repaymentHistoryWithUsers, filters, searchText, uiState, accountInfoByAccountId);
81
- const reducedFetchState = reduceAllFetchState([
82
- { fetchState, error },
83
- depositAccountsView,
84
- paymentAccountsView,
85
- ...Object.values(paymentAccountListState.paymentAccountBalanceFetchStatus),
86
- ]);
87
- return {
88
- accountInfoByAccountId,
89
- creditAccountId,
90
- currencyCode,
91
- currencySymbol,
92
- filters,
93
- isAutoPayEnabled,
94
- repaymentHistory: repaymentHistoryWithUsers,
95
- repaymentHistoryIds,
96
- repaymentHistoryUsers,
97
- searchText,
98
- totalRepayments,
99
- uiState,
100
- fetchState: reducedFetchState.fetchState,
101
- error: reducedFetchState.error,
102
- version: 0,
103
- };
104
- };
@@ -1,31 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { updateChargeCardRepayments } from '../../../../entity/chargeCardRepayment/chargeCardRepaymentReducer';
4
- import { updateAllUsers } from '../../../../entity/user/userReducer';
5
- import { createZeniAPIStatus, isSuccessStatus, } from '../../../../responsePayload';
6
- import { fetchChargeCardPaymentHistory, updateChargeCardPaymentHistory, updateChargeCardPaymentHistoryFailure, } from './chargeCardPaymentHistoryReducer';
7
- export const fetchChargeCardPaymentHistoryEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchChargeCardPaymentHistory.match), switchMap(() => {
8
- const queryParams = { include_history: true };
9
- const queryString = encodeURIComponent(JSON.stringify(queryParams));
10
- return zeniAPI
11
- .getJSON(`${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cards/repayments?query=${queryString}`)
12
- .pipe(mergeMap((response) => {
13
- if (isSuccessStatus(response) && response.data != null) {
14
- return of(
15
- // Store repayments FIRST before marking as completed
16
- updateChargeCardRepayments(response.data.repayment_history), updateAllUsers({
17
- users: response.data.repayment_history
18
- .map((repayment) => repayment.paid_by_user)
19
- .filter((user) => user != null),
20
- }),
21
- // Mark as completed LAST, after all data is stored
22
- updateChargeCardPaymentHistory(response.data));
23
- }
24
- else {
25
- return of(updateChargeCardPaymentHistoryFailure(response.status));
26
- }
27
- }), catchError((error) => {
28
- return of(updateChargeCardPaymentHistoryFailure(createZeniAPIStatus('Unexpected Error', 'Fetch charge card payment history REST API call errored out' +
29
- JSON.stringify(error))));
30
- }));
31
- }));