@zeniai/client-epic-state 4.18.79 → 4.18.81

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.
@@ -4,6 +4,6 @@ import { removeTransactionCategorization } from '../../../../entity/transaction/
4
4
  import { RootState } from '../../../../reducer';
5
5
  import { ZeniAPI } from '../../../../zeniAPI';
6
6
  import { fetchMonthEndCloseChecks } from '../../../monthEndCloseChecksView/monthEndCloseChecksViewReducer';
7
- import { markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdateForCategorization, updateTotalCountForTransactionCategorization } from '../../reducers/transactionsViewReducer';
8
- export type ActionType = ReturnType<typeof removeTransactionCategorization> | ReturnType<typeof openSnackbar> | ReturnType<typeof markTransactionAsNotMiscategorized> | ReturnType<typeof fetchMonthEndCloseChecks> | ReturnType<typeof updateStatusForTransactionNotMiscategorizedUpdateForCategorization> | ReturnType<typeof updateTotalCountForTransactionCategorization>;
7
+ import { fetchTransactionCategorizationView, markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdateForCategorization, updateTotalCountForTransactionCategorization } from '../../reducers/transactionsViewReducer';
8
+ export type ActionType = ReturnType<typeof removeTransactionCategorization> | ReturnType<typeof openSnackbar> | ReturnType<typeof markTransactionAsNotMiscategorized> | ReturnType<typeof fetchMonthEndCloseChecks> | ReturnType<typeof updateStatusForTransactionNotMiscategorizedUpdateForCategorization> | ReturnType<typeof updateTotalCountForTransactionCategorization> | ReturnType<typeof fetchTransactionCategorizationView>;
9
9
  export declare const markTransactionAsNotMiscategorizedEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<ActionType>;
@@ -13,12 +13,11 @@ const transactionCategorizationLocalDataHelper_1 = require("../../helpers/transa
13
13
  const transactionsViewReducer_1 = require("../../reducers/transactionsViewReducer");
14
14
  const markTransactionAsNotMiscategorizedEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionsViewReducer_1.markTransactionAsNotMiscategorized.match), (0, operators_1.mergeMap)((action) => {
15
15
  const { expenseAutomationViewState, expenseAutomationTransactionsViewState, } = state$.value;
16
- const transactionsInReview = action.payload.transactionsInReview;
16
+ const { transactionsInReview, selectedTab, isUncategorizedExpenseCategoryEnabled, } = action.payload;
17
17
  const transactionsSuccess = transactionsInReview.transactions_update_success;
18
18
  const transactionsFailed = transactionsInReview.transactions_update_failed;
19
19
  const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state$.value);
20
20
  const selectedPeriod = expenseAutomationViewState.selectedPeriodByTenantId[currentTenant.tenantId];
21
- const { selectedTab } = action.payload;
22
21
  const otherTab = selectedTab === 'review' ? 'autoCategorized' : 'review';
23
22
  const currentTabViewState = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab];
24
23
  const otherTabViewState = expenseAutomationTransactionsViewState.transactionCategorizationView[otherTab];
@@ -102,6 +101,18 @@ const markTransactionAsNotMiscategorizedEpic = (actions$, state$, zeniAPI) => ac
102
101
  transactionIds: transactionsToRemoveFromEntity,
103
102
  }));
104
103
  }
104
+ // refetch review tab refresh fetch state to let it auto refresh
105
+ if (selectedTab === 'autoCategorized' &&
106
+ Object.keys(failedLineItemsByTransactionId).length > 0) {
107
+ const period = (0, timePeriod_1.convertToPeriod)(selectedPeriod);
108
+ const timePeriodStart = (0, timePeriod_1.toAbsoluteDay)(period.start);
109
+ const timePeriodEnd = (0, timePeriod_1.toAbsoluteDay)(period.end);
110
+ if (timePeriodStart != null && timePeriodEnd != null) {
111
+ actions.push((0, transactionsViewReducer_1.fetchTransactionCategorizationView)('review', { start: timePeriodStart, end: timePeriodEnd }, true, // cacheOverride = true to force refresh
112
+ false, undefined, undefined, true, // refreshViewInBackground
113
+ false, isUncategorizedExpenseCategoryEnabled));
114
+ }
115
+ }
105
116
  actions.push((0, transactionsViewReducer_1.updateTotalCountForTransactionCategorization)({
106
117
  selectedPeriod,
107
118
  selectedTab,
@@ -12,7 +12,7 @@ const accountListSelector_1 = require("../../../accountList/accountListSelector"
12
12
  const saveTransactionHelper_1 = require("../../helpers/saveTransactionHelper");
13
13
  const transactionsViewReducer_1 = require("../../reducers/transactionsViewReducer");
14
14
  const saveTransactionCategorizationEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(transactionsViewReducer_1.saveTransactionCategorization.match), (0, operators_1.mergeMap)((action) => {
15
- const { transactionIds, cotTrackingByTransactionId, selectedTab } = action.payload;
15
+ const { transactionIds, cotTrackingByTransactionId, selectedTab, isUncategorizedExpenseCategoryEnabled, } = action.payload;
16
16
  const fetchActions = [];
17
17
  const { transactionState, expenseAutomationTransactionsViewState } = state$.value;
18
18
  const transactionSaveUpdates = [];
@@ -25,7 +25,7 @@ const saveTransactionCategorizationEpic = (actions$, state$) => actions$.pipe((0
25
25
  transactionSaveUpdates.push((0, saveTransactionHelper_1.toTransactionUpdatesFromTransactionCategorizationLocalData)(localData, transaction, uncategorizedIncomeExpense));
26
26
  }
27
27
  });
28
- fetchActions.push((0, transactionsViewReducer_1.updateTransactionCategorization)(selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId));
28
+ fetchActions.push((0, transactionsViewReducer_1.updateTransactionCategorization)(selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled));
29
29
  return (0, rxjs_1.from)(fetchActions);
30
30
  }));
31
31
  exports.saveTransactionCategorizationEpic = saveTransactionCategorizationEpic;
@@ -21,7 +21,7 @@ const vendorSelector_1 = require("../../../../entity/vendor/vendorSelector");
21
21
  const responsePayload_1 = require("../../../../responsePayload");
22
22
  const transactionsViewReducer_1 = require("../../reducers/transactionsViewReducer");
23
23
  const updateTransactionCategorizationEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionsViewReducer_1.updateTransactionCategorization.match), (0, operators_1.mergeMap)((action) => {
24
- const { selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, } = action.payload;
24
+ const { selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled, } = action.payload;
25
25
  const { transactionState, vendorState, expenseAutomationTransactionsViewState, } = state$.value;
26
26
  const payloadArray = preparePayload(selectedTab, transactionState, vendorState, expenseAutomationTransactionsViewState, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId).filter((payload) => payload != null);
27
27
  return zeniAPI
@@ -30,7 +30,7 @@ const updateTransactionCategorizationEpic = (actions$, state$, zeniAPI) => actio
30
30
  if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
31
31
  const transactionsInReview = response.data;
32
32
  const actions = [];
33
- actions.push((0, transactionsViewReducer_1.markTransactionAsNotMiscategorized)(selectedTab, transactionsInReview), (0, transactionsViewReducer_1.updateTransactionCategorizationSaveStatus)(selectedTab, 'Completed', (0, responsePayload_1.createZeniAPIStatus)('Completed', 'Transaction categorization updated successfully')));
33
+ actions.push((0, transactionsViewReducer_1.markTransactionAsNotMiscategorized)(selectedTab, transactionsInReview, isUncategorizedExpenseCategoryEnabled), (0, transactionsViewReducer_1.updateTransactionCategorizationSaveStatus)(selectedTab, 'Completed', (0, responsePayload_1.createZeniAPIStatus)('Completed', 'Transaction categorization updated successfully')));
34
34
  return (0, rxjs_1.from)(actions);
35
35
  }
36
36
  else {
@@ -51,24 +51,27 @@ export declare const fetchTransactionCategorization: import("@reduxjs/toolkit").
51
51
  selectedPeriod: MonthYearPeriod;
52
52
  selectedTab: TransactionsTab;
53
53
  status: ZeniAPIStatus;
54
- }, "expenseAutomationTransactionsView/fetchTransactionCategorizationFailure">, saveTransactionCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionIds: string[], cotTrackingByTransactionId: COTTransactionTrackingByTransactionId], {
54
+ }, "expenseAutomationTransactionsView/fetchTransactionCategorizationFailure">, saveTransactionCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionIds: string[], cotTrackingByTransactionId: COTTransactionTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled?: boolean | undefined], {
55
55
  selectedTab: "review" | "autoCategorized";
56
56
  transactionIds: string[];
57
57
  cotTrackingByTransactionId: COTTransactionTrackingByTransactionId;
58
- }, "expenseAutomationTransactionsView/saveTransactionCategorization", never, never>, updateTransactionCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionIds: string[], transactionSaveUpdates: TransactionSaveUpdates[], cotTrackingByTransactionId: COTTransactionTrackingByTransactionId], {
58
+ isUncategorizedExpenseCategoryEnabled: boolean | undefined;
59
+ }, "expenseAutomationTransactionsView/saveTransactionCategorization", never, never>, updateTransactionCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionIds: string[], transactionSaveUpdates: TransactionSaveUpdates[], cotTrackingByTransactionId: COTTransactionTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled?: boolean | undefined], {
59
60
  selectedTab: "review" | "autoCategorized";
60
61
  transactionIds: string[];
61
62
  transactionSaveUpdates: TransactionSaveUpdates[];
62
63
  cotTrackingByTransactionId: COTTransactionTrackingByTransactionId;
64
+ isUncategorizedExpenseCategoryEnabled: boolean | undefined;
63
65
  }, "expenseAutomationTransactionsView/updateTransactionCategorization", never, never>, updateCurrentSelectedTransactionCategorizationTab: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[newSelectedTab: "review" | "autoCategorized"], {
64
66
  newSelectedTab: "review" | "autoCategorized";
65
67
  }, "expenseAutomationTransactionsView/updateCurrentSelectedTransactionCategorizationTab", never, never>, updateTransactionCategorizationSaveStatus: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", fetchState: FetchState, error?: ZeniAPIStatus<Record<string, unknown>> | undefined], {
66
68
  selectedTab: "review" | "autoCategorized";
67
69
  fetchState: FetchState;
68
70
  error: ZeniAPIStatus<Record<string, unknown>> | undefined;
69
- }, "expenseAutomationTransactionsView/updateTransactionCategorizationSaveStatus", never, never>, markTransactionAsNotMiscategorized: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionsInReview: UpdateTransactionCategorizationResponsePayload], {
71
+ }, "expenseAutomationTransactionsView/updateTransactionCategorizationSaveStatus", never, never>, markTransactionAsNotMiscategorized: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionsInReview: UpdateTransactionCategorizationResponsePayload, isUncategorizedExpenseCategoryEnabled?: boolean | undefined], {
70
72
  selectedTab: "review" | "autoCategorized";
71
73
  transactionsInReview: UpdateTransactionCategorizationResponsePayload;
74
+ isUncategorizedExpenseCategoryEnabled: boolean | undefined;
72
75
  }, "expenseAutomationTransactionsView/markTransactionAsNotMiscategorized", never, never>, updateStatusForTransactionNotMiscategorizedUpdateForCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", uncheckTransactionIds: string[], removeTransactionIdsFromSelectedPeriod: string[], selectedPeriod: MonthYearPeriod, fetchState: FetchState, error?: ZeniAPIStatus<Record<string, unknown>> | undefined, updateLineItemsByTransactionId?: Record<string, string[]> | undefined], {
73
76
  removeTransactionIdsFromSelectedPeriod: string[];
74
77
  selectedPeriod: MonthYearPeriod;
@@ -228,12 +228,13 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
228
228
  }
229
229
  },
230
230
  saveTransactionCategorization: {
231
- prepare(selectedTab, transactionIds, cotTrackingByTransactionId) {
231
+ prepare(selectedTab, transactionIds, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled) {
232
232
  return {
233
233
  payload: {
234
234
  selectedTab,
235
235
  transactionIds,
236
236
  cotTrackingByTransactionId,
237
+ isUncategorizedExpenseCategoryEnabled,
237
238
  },
238
239
  };
239
240
  },
@@ -258,13 +259,14 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
258
259
  fetchState: 'In-Progress',
259
260
  };
260
261
  },
261
- prepare(selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId) {
262
+ prepare(selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled) {
262
263
  return {
263
264
  payload: {
264
265
  selectedTab,
265
266
  transactionIds,
266
267
  transactionSaveUpdates,
267
268
  cotTrackingByTransactionId,
269
+ isUncategorizedExpenseCategoryEnabled,
268
270
  },
269
271
  };
270
272
  },
@@ -535,11 +537,12 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
535
537
  error: undefined,
536
538
  };
537
539
  },
538
- prepare(selectedTab, transactionsInReview) {
540
+ prepare(selectedTab, transactionsInReview, isUncategorizedExpenseCategoryEnabled) {
539
541
  return {
540
542
  payload: {
541
543
  selectedTab,
542
544
  transactionsInReview,
545
+ isUncategorizedExpenseCategoryEnabled,
543
546
  },
544
547
  };
545
548
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.18.79",
3
+ "version": "4.18.81",
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
  "types": "lib/index.d.ts",