@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.
- package/lib/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscategorizedEpic.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscategorizedEpic.js +13 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/saveTransactionCategorizationEpic.js +2 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +2 -2
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +6 -3
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +6 -3
- package/package.json +1 -1
|
@@ -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
|
|
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
|
-
|
|
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.
|
|
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",
|