@zeniai/client-epic-state 5.0.71-betaAK1 → 5.0.71-betaAS1

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 (46) hide show
  1. package/lib/commonStateTypes/amount.d.ts +0 -1
  2. package/lib/commonStateTypes/amount.js +1 -3
  3. package/lib/epic.d.ts +1 -4
  4. package/lib/epic.js +1 -4
  5. package/lib/esm/commonStateTypes/amount.js +0 -1
  6. package/lib/esm/epic.js +1 -4
  7. package/lib/esm/index.js +0 -2
  8. package/lib/esm/reducer.js +0 -6
  9. package/lib/index.d.ts +0 -3
  10. package/lib/index.js +1 -6
  11. package/lib/reducer.d.ts +0 -6
  12. package/lib/reducer.js +0 -6
  13. package/package.json +1 -1
  14. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventPayload.d.ts +0 -11
  15. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventPayload.js +0 -23
  16. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventReducer.d.ts +0 -6
  17. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventReducer.js +0 -31
  18. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventSelector.d.ts +0 -4
  19. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventSelector.js +0 -16
  20. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventState.d.ts +0 -13
  21. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventState.js +0 -2
  22. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventPayload.js +0 -19
  23. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventReducer.js +0 -27
  24. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventSelector.js +0 -11
  25. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventState.js +0 -1
  26. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +0 -1
  27. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +0 -82
  28. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +0 -93
  29. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +0 -14
  30. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +0 -6
  31. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +0 -42
  32. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchUpcomingPaymentEventsEpic.js +0 -22
  33. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +0 -10
  34. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +0 -2
  35. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +0 -20
  36. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +0 -86
  37. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +0 -20
  38. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +0 -98
  39. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +0 -21
  40. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +0 -17
  41. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +0 -5
  42. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +0 -10
  43. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +0 -9
  44. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +0 -46
  45. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchUpcomingPaymentEventsEpic.d.ts +0 -8
  46. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchUpcomingPaymentEventsEpic.js +0 -26
package/lib/reducer.js CHANGED
@@ -100,7 +100,6 @@ const tenantReducer_1 = __importStar(require("./entity/tenant/tenantReducer"));
100
100
  const toastNotificationReducer_1 = __importStar(require("./entity/toastNotification/toastNotificationReducer"));
101
101
  const transactionReducer_1 = __importStar(require("./entity/transaction/transactionReducer"));
102
102
  const transactionActivityLogReducer_1 = __importStar(require("./entity/transactionActivityLog/transactionActivityLogReducer"));
103
- const upcomingPaymentEventReducer_1 = __importStar(require("./entity/upcomingPaymentEvent/upcomingPaymentEventReducer"));
104
103
  const userReducer_1 = __importStar(require("./entity/user/userReducer"));
105
104
  const userGroupsReducer_1 = __importStar(require("./entity/userGroups/userGroupsReducer"));
106
105
  const userRoleReducer_1 = __importStar(require("./entity/userRole/userRoleReducer"));
@@ -197,7 +196,6 @@ const internationalWireVerificationReducer_1 = __importStar(require("./view/spen
197
196
  const magicLinkViewReducer_1 = __importStar(require("./view/spendManagement/billPay/magicLinkView/magicLinkViewReducer"));
198
197
  const previousBillsReducer_1 = __importStar(require("./view/spendManagement/billPay/previousBills/previousBillsReducer"));
199
198
  const wiseRedirectReducer_1 = __importStar(require("./view/spendManagement/billPay/wiseRedirectView/wiseRedirectReducer"));
200
- const cashManagementOverviewReducer_1 = __importStar(require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer"));
201
199
  const cardUserOnboardingReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer"));
202
200
  const cashbackDetailReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer"));
203
201
  const chargeCardConfigReducer_1 = __importStar(require("./view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer"));
@@ -328,7 +326,6 @@ const initialEntitiesState = {
328
326
  toastNotificationState: toastNotificationReducer_1.initialState,
329
327
  transactionActivityLogState: transactionActivityLogReducer_1.initialState,
330
328
  transactionState: transactionReducer_1.initialState,
331
- upcomingPaymentEventState: upcomingPaymentEventReducer_1.initialState,
332
329
  userGroupsState: userGroupsReducer_1.initialState,
333
330
  userRoleState: userRoleReducer_1.initialState,
334
331
  userState: userReducer_1.initialState,
@@ -368,7 +365,6 @@ const initialViewsState = {
368
365
  cashBalanceState: cashBalanceReducer_1.initialState,
369
366
  cashFlowState: cashFlowReducer_1.initialState,
370
367
  cashInCashOutState: cashInCashOutReducer_1.initialState,
371
- cashManagementOverviewState: cashManagementOverviewReducer_1.initialState,
372
368
  cashPositionState: cashPositionReducer_1.initialState,
373
369
  chargeCardConfigState: chargeCardConfigReducer_1.initialState,
374
370
  chargeCardDetailState: chargeCardDetailReducer_1.initialState,
@@ -566,7 +562,6 @@ const entityReducers = {
566
562
  toastNotificationState: toastNotificationReducer_1.default,
567
563
  transactionActivityLogState: transactionActivityLogReducer_1.default,
568
564
  transactionState: transactionReducer_1.default,
569
- upcomingPaymentEventState: upcomingPaymentEventReducer_1.default,
570
565
  userGroupsState: userGroupsReducer_1.default,
571
566
  userRoleState: userRoleReducer_1.default,
572
567
  userState: userReducer_1.default,
@@ -605,7 +600,6 @@ const viewReducers = {
605
600
  cashBalanceState: cashBalanceReducer_1.default,
606
601
  cashFlowState: cashFlowReducer_1.default,
607
602
  cashInCashOutState: cashInCashOutReducer_1.default,
608
- cashManagementOverviewState: cashManagementOverviewReducer_1.default,
609
603
  cashPositionState: cashPositionReducer_1.default,
610
604
  chargeCardConfigState: chargeCardConfigReducer_1.default,
611
605
  chargeCardDetailState: chargeCardDetailReducer_1.default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.71-betaAK1",
3
+ "version": "5.0.71-betaAS1",
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,11 +0,0 @@
1
- import { UpcomingPaymentEvent } from './upcomingPaymentEventState';
2
- export interface UpcomingPaymentEventPayload {
3
- amount: number;
4
- currency_code: string;
5
- id: string;
6
- payment_date: string;
7
- type: 'reimbursement' | 'bill';
8
- report_title?: string;
9
- vendor_name?: string;
10
- }
11
- export declare const toUpcomingPaymentEvent: (payload: UpcomingPaymentEventPayload) => UpcomingPaymentEvent;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toUpcomingPaymentEvent = void 0;
4
- const amount_1 = require("../../commonStateTypes/amount");
5
- const zeniDayJS_1 = require("../../zeniDayJS");
6
- const getTitle = (payload) => {
7
- switch (payload.type) {
8
- case 'bill':
9
- return payload.vendor_name ?? '';
10
- case 'reimbursement':
11
- return payload.report_title ?? '';
12
- default:
13
- return '';
14
- }
15
- };
16
- const toUpcomingPaymentEvent = (payload) => ({
17
- amount: (0, amount_1.toAmount)(payload.amount, payload.currency_code, payload.currency_code),
18
- id: payload.id,
19
- paymentDate: (0, zeniDayJS_1.date)(payload.payment_date),
20
- title: getTitle(payload),
21
- type: payload.type,
22
- });
23
- exports.toUpcomingPaymentEvent = toUpcomingPaymentEvent;
@@ -1,6 +0,0 @@
1
- import { UpcomingPaymentEventPayload } from './upcomingPaymentEventPayload';
2
- import { UpcomingPaymentEventState } from './upcomingPaymentEventState';
3
- export declare const initialState: UpcomingPaymentEventState;
4
- export declare const updateUpcomingPaymentEvents: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpcomingPaymentEventPayload[], "upcomingPaymentEvent/updateUpcomingPaymentEvents">, removeUpcomingPaymentEvent: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "upcomingPaymentEvent/removeUpcomingPaymentEvent">, clearAllUpcomingPaymentEvents: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"upcomingPaymentEvent/clearAllUpcomingPaymentEvents">;
5
- declare const _default: import("redux").Reducer<UpcomingPaymentEventState>;
6
- export default _default;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearAllUpcomingPaymentEvents = exports.removeUpcomingPaymentEvent = exports.updateUpcomingPaymentEvents = exports.initialState = void 0;
5
- const toolkit_1 = require("@reduxjs/toolkit");
6
- const upcomingPaymentEventPayload_1 = require("./upcomingPaymentEventPayload");
7
- exports.initialState = {
8
- eventsById: {},
9
- };
10
- const upcomingPaymentEvent = (0, toolkit_1.createSlice)({
11
- name: 'upcomingPaymentEvent',
12
- initialState: exports.initialState,
13
- reducers: {
14
- updateUpcomingPaymentEvents(draft, action) {
15
- action.payload.forEach((payload) => {
16
- const event = (0, upcomingPaymentEventPayload_1.toUpcomingPaymentEvent)(payload);
17
- if (event != null) {
18
- draft.eventsById[event.id] = event;
19
- }
20
- });
21
- },
22
- removeUpcomingPaymentEvent(draft, action) {
23
- delete draft.eventsById[action.payload];
24
- },
25
- clearAllUpcomingPaymentEvents(draft) {
26
- draft.eventsById = {};
27
- },
28
- },
29
- });
30
- _a = upcomingPaymentEvent.actions, exports.updateUpcomingPaymentEvents = _a.updateUpcomingPaymentEvents, exports.removeUpcomingPaymentEvent = _a.removeUpcomingPaymentEvent, exports.clearAllUpcomingPaymentEvents = _a.clearAllUpcomingPaymentEvents;
31
- exports.default = upcomingPaymentEvent.reducer;
@@ -1,4 +0,0 @@
1
- import { ID } from '../../commonStateTypes/common';
2
- import { UpcomingPaymentEvent, UpcomingPaymentEventState } from './upcomingPaymentEventState';
3
- export declare const getUpcomingPaymentEventById: (state: UpcomingPaymentEventState, id: ID) => UpcomingPaymentEvent | undefined;
4
- export declare const getUpcomingPaymentEventsByIds: (state: UpcomingPaymentEventState, ids: ID[]) => UpcomingPaymentEvent[];
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUpcomingPaymentEventsByIds = exports.getUpcomingPaymentEventById = void 0;
4
- const getUpcomingPaymentEventById = (state, id) => state.eventsById[id];
5
- exports.getUpcomingPaymentEventById = getUpcomingPaymentEventById;
6
- const getUpcomingPaymentEventsByIds = (state, ids) => {
7
- const events = [];
8
- ids.forEach((id) => {
9
- const event = state.eventsById[id];
10
- if (event != null) {
11
- events.push(event);
12
- }
13
- });
14
- return events;
15
- };
16
- exports.getUpcomingPaymentEventsByIds = getUpcomingPaymentEventsByIds;
@@ -1,13 +0,0 @@
1
- import { Amount } from '../../commonStateTypes/amount';
2
- import { ID } from '../../commonStateTypes/common';
3
- import { ZeniDate } from '../../zeniDayJS';
4
- export interface UpcomingPaymentEvent {
5
- amount: Amount;
6
- id: ID;
7
- paymentDate: ZeniDate;
8
- title: string;
9
- type: 'reimbursement' | 'bill';
10
- }
11
- export interface UpcomingPaymentEventState {
12
- eventsById: Record<ID, UpcomingPaymentEvent>;
13
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,19 +0,0 @@
1
- import { toAmount } from '../../commonStateTypes/amount';
2
- import { date } from '../../zeniDayJS';
3
- const getTitle = (payload) => {
4
- switch (payload.type) {
5
- case 'bill':
6
- return payload.vendor_name ?? '';
7
- case 'reimbursement':
8
- return payload.report_title ?? '';
9
- default:
10
- return '';
11
- }
12
- };
13
- export const toUpcomingPaymentEvent = (payload) => ({
14
- amount: toAmount(payload.amount, payload.currency_code, payload.currency_code),
15
- id: payload.id,
16
- paymentDate: date(payload.payment_date),
17
- title: getTitle(payload),
18
- type: payload.type,
19
- });
@@ -1,27 +0,0 @@
1
- import { createSlice } from '@reduxjs/toolkit';
2
- import { toUpcomingPaymentEvent, } from './upcomingPaymentEventPayload';
3
- export const initialState = {
4
- eventsById: {},
5
- };
6
- const upcomingPaymentEvent = createSlice({
7
- name: 'upcomingPaymentEvent',
8
- initialState,
9
- reducers: {
10
- updateUpcomingPaymentEvents(draft, action) {
11
- action.payload.forEach((payload) => {
12
- const event = toUpcomingPaymentEvent(payload);
13
- if (event != null) {
14
- draft.eventsById[event.id] = event;
15
- }
16
- });
17
- },
18
- removeUpcomingPaymentEvent(draft, action) {
19
- delete draft.eventsById[action.payload];
20
- },
21
- clearAllUpcomingPaymentEvents(draft) {
22
- draft.eventsById = {};
23
- },
24
- },
25
- });
26
- export const { updateUpcomingPaymentEvents, removeUpcomingPaymentEvent, clearAllUpcomingPaymentEvents, } = upcomingPaymentEvent.actions;
27
- export default upcomingPaymentEvent.reducer;
@@ -1,11 +0,0 @@
1
- export const getUpcomingPaymentEventById = (state, id) => state.eventsById[id];
2
- export const getUpcomingPaymentEventsByIds = (state, ids) => {
3
- const events = [];
4
- ids.forEach((id) => {
5
- const event = state.eventsById[id];
6
- if (event != null) {
7
- events.push(event);
8
- }
9
- });
10
- return events;
11
- };
@@ -1,82 +0,0 @@
1
- import { createSlice } from '@reduxjs/toolkit';
2
- import { initialCashManagementBannerState, initialUpcomingPaymentEventsListState, } from './cashManagementOverviewState';
3
- export const initialState = {
4
- banner: initialCashManagementBannerState,
5
- upcomingPaymentEvents: initialUpcomingPaymentEventsListState,
6
- fetchState: 'Not-Started',
7
- error: undefined,
8
- hasValidState() {
9
- return this.fetchState == 'Completed';
10
- },
11
- };
12
- const cashManagementOverview = createSlice({
13
- name: 'cashManagementOverview',
14
- initialState,
15
- reducers: {
16
- fetchCashManagementOverviewPage: {
17
- reducer() { },
18
- prepare(cacheOverride) {
19
- return { payload: { cacheOverride } };
20
- },
21
- },
22
- fetchUpcomingPaymentEvents(draft) {
23
- draft.upcomingPaymentEvents = {
24
- ...draft.upcomingPaymentEvents,
25
- fetchState: 'In-Progress',
26
- error: undefined,
27
- };
28
- },
29
- updateUpcomingPaymentEventsList(draft, action) {
30
- const { data } = action.payload;
31
- const eventIds = [];
32
- data.events.forEach((payload) => {
33
- if (payload.id != null) {
34
- eventIds.push(payload.id);
35
- }
36
- });
37
- draft.upcomingPaymentEvents = {
38
- fetchState: 'Completed',
39
- error: undefined,
40
- billStages: (data.bill_stages ?? []),
41
- eventIds,
42
- horizonDays: data.horizon_days,
43
- reimbursementStages: (data.reimbursement_stages ??
44
- []),
45
- tenantNamespace: data.tenant_namespace,
46
- };
47
- },
48
- updateUpcomingPaymentEventsListFetchStatus(draft, action) {
49
- draft.upcomingPaymentEvents = {
50
- ...draft.upcomingPaymentEvents,
51
- fetchState: action.payload.fetchState,
52
- error: action.payload.error,
53
- };
54
- },
55
- fetchCashManagementBanner(draft) {
56
- draft.banner = {
57
- ...initialCashManagementBannerState,
58
- fetchState: 'In-Progress',
59
- error: undefined,
60
- };
61
- },
62
- updateCashManagementBanner(draft, action) {
63
- draft.banner = {
64
- fetchState: 'Completed',
65
- error: undefined,
66
- data: action.payload.data,
67
- };
68
- },
69
- updateCashManagementBannerFetchStatus(draft, action) {
70
- draft.banner = {
71
- ...draft.banner,
72
- fetchState: action.payload.fetchState,
73
- error: action.payload.error,
74
- };
75
- },
76
- clearCashManagementOverview(draft) {
77
- Object.assign(draft, initialState);
78
- },
79
- },
80
- });
81
- export const { fetchCashManagementOverviewPage, fetchUpcomingPaymentEvents, updateUpcomingPaymentEventsList, updateUpcomingPaymentEventsListFetchStatus, fetchCashManagementBanner, updateCashManagementBanner, updateCashManagementBannerFetchStatus, clearCashManagementOverview, } = cashManagementOverview.actions;
82
- export default cashManagementOverview.reducer;
@@ -1,93 +0,0 @@
1
- import { zeroAmount } from '../../../../commonStateTypes/amount';
2
- import { reduceAllFetchState } from '../../../../commonStateTypes/reduceFetchState';
3
- import { getUpcomingPaymentEventsByIds } from '../../../../entity/upcomingPaymentEvent/upcomingPaymentEventSelector';
4
- export const getCashManagementOverviewBanner = (state) => {
5
- const { banner } = state.cashManagementOverviewState;
6
- return {
7
- fetchState: banner.fetchState,
8
- error: banner.error,
9
- data: banner.data,
10
- version: 0,
11
- };
12
- };
13
- export const getCashManagementOverview = (state) => {
14
- const { cashManagementOverviewState, depositAccountListState, depositAccountState, paymentAccountListState, paymentAccountState, treasuryDetailState, } = state;
15
- const outflowEventsFetchState = {
16
- fetchState: cashManagementOverviewState.upcomingPaymentEvents.fetchState,
17
- error: cashManagementOverviewState.upcomingPaymentEvents.error,
18
- };
19
- const bannerFetchState = {
20
- fetchState: cashManagementOverviewState.banner.fetchState,
21
- error: cashManagementOverviewState.banner.error,
22
- };
23
- const aggregate = reduceAllFetchState([
24
- {
25
- fetchState: paymentAccountListState.fetchState,
26
- error: paymentAccountListState.error,
27
- },
28
- {
29
- fetchState: depositAccountListState.fetchState,
30
- error: depositAccountListState.error,
31
- },
32
- {
33
- fetchState: treasuryDetailState.fetchState,
34
- error: treasuryDetailState.error,
35
- },
36
- outflowEventsFetchState,
37
- bannerFetchState,
38
- ]);
39
- const treasuryBalance = treasuryDetailState.accountSummary?.totalBalance ?? zeroAmount();
40
- const cashBalance = sumCashBalances(paymentAccountListState.paymentAccountIds, paymentAccountState, depositAccountListState.accountIds, depositAccountState);
41
- const totalCash = addAmounts(treasuryBalance, cashBalance);
42
- return {
43
- bannerFetchState,
44
- cashBalance,
45
- horizonDays: cashManagementOverviewState.upcomingPaymentEvents.horizonDays,
46
- outflowEvents: getUpcomingPaymentEventsByIds(state.upcomingPaymentEventState, cashManagementOverviewState.upcomingPaymentEvents.eventIds),
47
- outflowEventsFetchState,
48
- totalCash,
49
- treasuryBalance,
50
- fetchState: aggregate.fetchState,
51
- error: aggregate.error,
52
- version: 0,
53
- };
54
- };
55
- const isZeroAmount = (a) => a.amount === 0 && a.currencyCode === 'USD' && a.currencySymbol === '$';
56
- /**
57
- * Adds two Amounts. Currencies must match (the seeded zeroAmount() counts as
58
- * "no currency yet" and adopts `b`'s currency). Mismatches return `a`
59
- * unchanged and warn — mixing currencies in a total is a bug, not silent
60
- * conversion.
61
- */
62
- const addAmounts = (a, b) => {
63
- if (isZeroAmount(a)) {
64
- return { ...b };
65
- }
66
- if (a.currencyCode !== b.currencyCode ||
67
- a.currencySymbol !== b.currencySymbol) {
68
- console.warn(`cashManagementOverview: skipping balance with mismatched currency. Expected ${a.currencyCode} (${a.currencySymbol}), got ${b.currencyCode} (${b.currencySymbol}).`);
69
- return a;
70
- }
71
- return {
72
- amount: a.amount + b.amount,
73
- currencyCode: a.currencyCode,
74
- currencySymbol: a.currencySymbol,
75
- };
76
- };
77
- const sumCashBalances = (paymentAccountIds, paymentAccountState, depositAccountIds, depositAccountState) => {
78
- let total = zeroAmount();
79
- paymentAccountIds.forEach((id) => {
80
- const balance = paymentAccountState.paymentAccountByID[id]?.balances
81
- ?.available;
82
- if (balance != null) {
83
- total = addAmounts(total, balance);
84
- }
85
- });
86
- depositAccountIds.forEach((id) => {
87
- const balance = depositAccountState.depositAccountByID[id]?.accountBalance?.available;
88
- if (balance != null) {
89
- total = addAmounts(total, balance);
90
- }
91
- });
92
- return total;
93
- };
@@ -1,14 +0,0 @@
1
- export const initialCashManagementBannerState = {
2
- fetchState: 'Not-Started',
3
- error: undefined,
4
- data: undefined,
5
- };
6
- export const initialUpcomingPaymentEventsListState = {
7
- fetchState: 'Not-Started',
8
- error: undefined,
9
- billStages: [],
10
- eventIds: [],
11
- horizonDays: 0,
12
- reimbursementStages: [],
13
- tenantNamespace: undefined,
14
- };
@@ -1,6 +0,0 @@
1
- import { EMPTY } from 'rxjs';
2
- import { filter, mergeMap } from 'rxjs/operators';
3
- import { fetchCashManagementBanner, } from '../cashManagementOverviewReducer';
4
- // TODO: replace EMPTY with an actual API call once the banner endpoint is finalized.
5
- // Figma: https://www.figma.com/design/FUg2pv7edRAidx9X56VnZT/Cash-Management?node-id=2265-63443
6
- export const fetchCashManagementBannerEpic = (actions$) => actions$.pipe(filter(fetchCashManagementBanner.match), mergeMap(() => EMPTY));
@@ -1,42 +0,0 @@
1
- import { concat, from } from 'rxjs';
2
- import { filter, mergeMap } from 'rxjs/operators';
3
- import { fetchAutoTransferRules } from '../../../autotransferRules/autoTransferRulesReducer';
4
- import { fetchTreasuryOverviewDetail } from '../../../treasury/treasuryList/treasuryDetailReducer';
5
- import { fetchZeniAccountList } from '../../../zeniAccounts/zeniAccountList/zeniAccountListReducer';
6
- import { fetchCashManagementBanner, fetchCashManagementOverviewPage, fetchUpcomingPaymentEvents, } from '../cashManagementOverviewReducer';
7
- export const fetchCashManagementOverviewPageEpic = (actions$, state$) => actions$.pipe(filter(fetchCashManagementOverviewPage.match), mergeMap((action) => {
8
- const { cacheOverride } = action.payload;
9
- const state = state$.value;
10
- const pageActions = [];
11
- if (cacheOverride === true) {
12
- pageActions.push(fetchTreasuryOverviewDetail(true));
13
- pageActions.push(fetchZeniAccountList(true));
14
- pageActions.push(fetchUpcomingPaymentEvents());
15
- pageActions.push(fetchCashManagementBanner());
16
- pageActions.push(fetchAutoTransferRules(true));
17
- }
18
- else {
19
- const treasuryDetailState = state.treasuryDetailState;
20
- if (treasuryDetailState.hasValidState() === false &&
21
- treasuryDetailState.fetchState !== 'In-Progress') {
22
- pageActions.push(fetchTreasuryOverviewDetail(false));
23
- }
24
- pageActions.push(fetchZeniAccountList(false));
25
- const upcomingEvents = state.cashManagementOverviewState.upcomingPaymentEvents;
26
- if (upcomingEvents.fetchState !== 'Completed' &&
27
- upcomingEvents.fetchState !== 'In-Progress') {
28
- pageActions.push(fetchUpcomingPaymentEvents());
29
- }
30
- const banner = state.cashManagementOverviewState.banner;
31
- if (banner.fetchState !== 'Completed' &&
32
- banner.fetchState !== 'In-Progress') {
33
- pageActions.push(fetchCashManagementBanner());
34
- }
35
- const autoTransferRules = state.autotransferRulesState;
36
- if (autoTransferRules.fetchState !== 'Completed' &&
37
- autoTransferRules.fetchState !== 'In-Progress') {
38
- pageActions.push(fetchAutoTransferRules(false));
39
- }
40
- }
41
- return concat(from(pageActions));
42
- }));
@@ -1,22 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
4
- import { updateUpcomingPaymentEvents } from '../../../../../entity/upcomingPaymentEvent/upcomingPaymentEventReducer';
5
- import { fetchUpcomingPaymentEvents, updateUpcomingPaymentEventsList, updateUpcomingPaymentEventsListFetchStatus, } from '../cashManagementOverviewReducer';
6
- export const fetchUpcomingPaymentEventsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchUpcomingPaymentEvents.match), switchMap(() => zeniAPI
7
- .getJSON(
8
- // TODO: drop /rajat/ once the prod endpoint lands. `${zeniAPI.apiEndPoints.spendManagementMicroServiceBaseUrl}/1.0/upcoming-payment-events`
9
- `https://dev.api.zeni.ai/version/spend-management/rajat/1.0/upcoming-payment-events`)
10
- .pipe(mergeMap((response) => {
11
- if (isSuccessResponse(response) && response.data != null) {
12
- return of(updateUpcomingPaymentEvents(response.data.events), updateUpcomingPaymentEventsList({ data: response.data }));
13
- }
14
- return of(updateUpcomingPaymentEventsListFetchStatus({
15
- fetchState: 'Error',
16
- error: response.status,
17
- }));
18
- }), catchError((error) => of(updateUpcomingPaymentEventsListFetchStatus({
19
- fetchState: 'Error',
20
- error: createZeniAPIStatus('Unexpected Error', 'Fetch upcoming payment events REST API call errored out' +
21
- JSON.stringify(error)),
22
- }))))));
@@ -1,10 +0,0 @@
1
- import { UpcomingPaymentEventPayload } from '../../../../entity/upcomingPaymentEvent/upcomingPaymentEventPayload';
2
- import { ZeniAPIResponse } from '../../../../responsePayload';
3
- export interface FetchUpcomingPaymentEventsPayload {
4
- bill_stages: string[];
5
- events: UpcomingPaymentEventPayload[];
6
- horizon_days: number;
7
- reimbursement_stages: string[];
8
- tenant_namespace: string;
9
- }
10
- export type FetchUpcomingPaymentEventsResponse = ZeniAPIResponse<FetchUpcomingPaymentEventsPayload>;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,20 +0,0 @@
1
- import { FetchState } from '../../../../commonStateTypes/common';
2
- import { ZeniAPIStatus } from '../../../../responsePayload';
3
- import { FetchUpcomingPaymentEventsPayload } from './cashManagementOverviewPayload';
4
- import { CashManagementBannerData, CashManagementOverviewState } from './cashManagementOverviewState';
5
- export declare const initialState: CashManagementOverviewState;
6
- export declare const fetchCashManagementOverviewPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride: boolean], {
7
- cacheOverride: boolean;
8
- }, "cashManagementOverview/fetchCashManagementOverviewPage", never, never>, fetchUpcomingPaymentEvents: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"cashManagementOverview/fetchUpcomingPaymentEvents">, updateUpcomingPaymentEventsList: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
9
- data: FetchUpcomingPaymentEventsPayload;
10
- }, "cashManagementOverview/updateUpcomingPaymentEventsList">, updateUpcomingPaymentEventsListFetchStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
11
- fetchState: FetchState;
12
- error?: ZeniAPIStatus;
13
- }, "cashManagementOverview/updateUpcomingPaymentEventsListFetchStatus">, fetchCashManagementBanner: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"cashManagementOverview/fetchCashManagementBanner">, updateCashManagementBanner: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
14
- data: CashManagementBannerData;
15
- }, "cashManagementOverview/updateCashManagementBanner">, updateCashManagementBannerFetchStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
16
- fetchState: FetchState;
17
- error?: ZeniAPIStatus;
18
- }, "cashManagementOverview/updateCashManagementBannerFetchStatus">, clearCashManagementOverview: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"cashManagementOverview/clearCashManagementOverview">;
19
- declare const _default: import("redux").Reducer<CashManagementOverviewState>;
20
- export default _default;
@@ -1,86 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearCashManagementOverview = exports.updateCashManagementBannerFetchStatus = exports.updateCashManagementBanner = exports.fetchCashManagementBanner = exports.updateUpcomingPaymentEventsListFetchStatus = exports.updateUpcomingPaymentEventsList = exports.fetchUpcomingPaymentEvents = exports.fetchCashManagementOverviewPage = exports.initialState = void 0;
5
- const toolkit_1 = require("@reduxjs/toolkit");
6
- const cashManagementOverviewState_1 = require("./cashManagementOverviewState");
7
- exports.initialState = {
8
- banner: cashManagementOverviewState_1.initialCashManagementBannerState,
9
- upcomingPaymentEvents: cashManagementOverviewState_1.initialUpcomingPaymentEventsListState,
10
- fetchState: 'Not-Started',
11
- error: undefined,
12
- hasValidState() {
13
- return this.fetchState == 'Completed';
14
- },
15
- };
16
- const cashManagementOverview = (0, toolkit_1.createSlice)({
17
- name: 'cashManagementOverview',
18
- initialState: exports.initialState,
19
- reducers: {
20
- fetchCashManagementOverviewPage: {
21
- reducer() { },
22
- prepare(cacheOverride) {
23
- return { payload: { cacheOverride } };
24
- },
25
- },
26
- fetchUpcomingPaymentEvents(draft) {
27
- draft.upcomingPaymentEvents = {
28
- ...draft.upcomingPaymentEvents,
29
- fetchState: 'In-Progress',
30
- error: undefined,
31
- };
32
- },
33
- updateUpcomingPaymentEventsList(draft, action) {
34
- const { data } = action.payload;
35
- const eventIds = [];
36
- data.events.forEach((payload) => {
37
- if (payload.id != null) {
38
- eventIds.push(payload.id);
39
- }
40
- });
41
- draft.upcomingPaymentEvents = {
42
- fetchState: 'Completed',
43
- error: undefined,
44
- billStages: (data.bill_stages ?? []),
45
- eventIds,
46
- horizonDays: data.horizon_days,
47
- reimbursementStages: (data.reimbursement_stages ??
48
- []),
49
- tenantNamespace: data.tenant_namespace,
50
- };
51
- },
52
- updateUpcomingPaymentEventsListFetchStatus(draft, action) {
53
- draft.upcomingPaymentEvents = {
54
- ...draft.upcomingPaymentEvents,
55
- fetchState: action.payload.fetchState,
56
- error: action.payload.error,
57
- };
58
- },
59
- fetchCashManagementBanner(draft) {
60
- draft.banner = {
61
- ...cashManagementOverviewState_1.initialCashManagementBannerState,
62
- fetchState: 'In-Progress',
63
- error: undefined,
64
- };
65
- },
66
- updateCashManagementBanner(draft, action) {
67
- draft.banner = {
68
- fetchState: 'Completed',
69
- error: undefined,
70
- data: action.payload.data,
71
- };
72
- },
73
- updateCashManagementBannerFetchStatus(draft, action) {
74
- draft.banner = {
75
- ...draft.banner,
76
- fetchState: action.payload.fetchState,
77
- error: action.payload.error,
78
- };
79
- },
80
- clearCashManagementOverview(draft) {
81
- Object.assign(draft, exports.initialState);
82
- },
83
- },
84
- });
85
- _a = cashManagementOverview.actions, exports.fetchCashManagementOverviewPage = _a.fetchCashManagementOverviewPage, exports.fetchUpcomingPaymentEvents = _a.fetchUpcomingPaymentEvents, exports.updateUpcomingPaymentEventsList = _a.updateUpcomingPaymentEventsList, exports.updateUpcomingPaymentEventsListFetchStatus = _a.updateUpcomingPaymentEventsListFetchStatus, exports.fetchCashManagementBanner = _a.fetchCashManagementBanner, exports.updateCashManagementBanner = _a.updateCashManagementBanner, exports.updateCashManagementBannerFetchStatus = _a.updateCashManagementBannerFetchStatus, exports.clearCashManagementOverview = _a.clearCashManagementOverview;
86
- exports.default = cashManagementOverview.reducer;