@zeniai/client-epic-state 5.1.71 → 5.1.72-betaRD1
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/entity/jeSchedules/jeSchedulesPayload.d.ts +2 -0
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +2 -0
- package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +4 -0
- package/lib/entity/jeSchedules/jeSchedulesSelector.js +11 -1
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
- package/lib/entity/monthEndCloseChecks/monthEndCloseChecksPayload.d.ts +1 -0
- package/lib/entity/monthEndCloseChecks/monthEndCloseChecksPayload.js +1 -0
- package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -0
- package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.d.ts +2 -0
- package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.js +2 -0
- package/lib/entity/transaction/stateTypes/scheduleTransaction.d.ts +2 -0
- package/lib/epic.d.ts +5 -1
- package/lib/epic.js +5 -1
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +2 -0
- package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +11 -1
- package/lib/esm/entity/monthEndCloseChecks/monthEndCloseChecksPayload.js +1 -0
- package/lib/esm/entity/transaction/payloadTypes/scheduleTransactionPayload.js +2 -0
- package/lib/esm/epic.js +5 -1
- package/lib/esm/index.js +12 -6
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +23 -3
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.js +21 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +110 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.js +73 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +22 -0
- package/lib/esm/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +140 -0
- package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +133 -8
- package/lib/esm/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.js +1 -0
- package/lib/esm/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.js +70 -0
- package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +110 -15
- package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +3 -6
- package/lib/esm/view/notificationPreferencesView/epics/saveNotificationPreferencesEpic.js +13 -16
- package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewPayload.js +7 -2
- package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewReducer.js +55 -10
- package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewSelector.js +23 -13
- package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewState.js +1 -0
- package/lib/index.d.ts +13 -9
- package/lib/index.js +72 -48
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +21 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.js +25 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.d.ts +45 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +114 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.js +77 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.d.ts +6 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +26 -0
- package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.d.ts +36 -0
- package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +145 -0
- package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.d.ts +7 -1
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +40 -9
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +134 -8
- package/lib/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.d.ts +25 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.js +2 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +31 -7
- package/lib/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.d.ts +10 -0
- package/lib/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.js +75 -0
- package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.d.ts +4 -1
- package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +112 -14
- package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +53 -6
- package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +5 -8
- package/lib/view/notificationPreferencesView/epics/saveNotificationPreferencesEpic.d.ts +2 -8
- package/lib/view/notificationPreferencesView/epics/saveNotificationPreferencesEpic.js +10 -13
- package/lib/view/notificationPreferencesView/notificationPreferencesViewPayload.d.ts +2 -1
- package/lib/view/notificationPreferencesView/notificationPreferencesViewPayload.js +7 -2
- package/lib/view/notificationPreferencesView/notificationPreferencesViewReducer.d.ts +6 -1
- package/lib/view/notificationPreferencesView/notificationPreferencesViewReducer.js +56 -11
- package/lib/view/notificationPreferencesView/notificationPreferencesViewSelector.js +23 -15
- package/lib/view/notificationPreferencesView/notificationPreferencesViewState.d.ts +1 -0
- package/lib/view/notificationPreferencesView/notificationPreferencesViewState.js +1 -0
- package/package.json +1 -1
|
@@ -1,32 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasUnsavedNotificationPreferences = exports.getNotificationLocalOverrides = exports.getEffectiveNotificationPreferences = exports.getNotificationPreferencesSaveState = void 0;
|
|
4
|
+
const toolkit_1 = require("@reduxjs/toolkit");
|
|
4
5
|
const getView = (state) => state.notificationPreferencesViewState;
|
|
5
6
|
const getNotificationPreferencesSaveState = (state) => getView(state).savePreferencesState;
|
|
6
7
|
exports.getNotificationPreferencesSaveState = getNotificationPreferencesSaveState;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
// Memoised on `preferences` + `localOverrides` so the merged shape keeps a
|
|
9
|
+
// stable reference while neither input changes — a plain function would
|
|
10
|
+
// allocate a fresh object on every call and re-render every `useSelector`
|
|
11
|
+
// consumer on any unrelated dispatch.
|
|
12
|
+
exports.getEffectiveNotificationPreferences = (0, toolkit_1.createSelector)((state) => getView(state).preferences, (state) => getView(state).localOverrides, (preferences, localOverrides) => {
|
|
13
|
+
const mergedEventEnabledByChannel = { ...preferences.eventEnabledByChannel };
|
|
14
|
+
Object.entries(localOverrides.eventEnabledByChannel).forEach(([eventId, channels]) => {
|
|
11
15
|
mergedEventEnabledByChannel[eventId] = {
|
|
12
|
-
...(
|
|
16
|
+
...(preferences.eventEnabledByChannel[eventId] ?? {}),
|
|
17
|
+
...channels,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
const mergedGroupChannelEnabledByGroupId = { ...preferences.groupChannelEnabledByGroupId };
|
|
21
|
+
Object.entries(localOverrides.groupChannelEnabledByGroupId).forEach(([groupId, channels]) => {
|
|
22
|
+
mergedGroupChannelEnabledByGroupId[groupId] = {
|
|
23
|
+
...(preferences.groupChannelEnabledByGroupId[groupId] ?? {}),
|
|
13
24
|
...channels,
|
|
14
25
|
};
|
|
15
26
|
});
|
|
16
27
|
return {
|
|
17
28
|
eventEnabledByChannel: mergedEventEnabledByChannel,
|
|
29
|
+
groupChannelEnabledByGroupId: mergedGroupChannelEnabledByGroupId,
|
|
18
30
|
groupFrequencyByGroupId: {
|
|
19
|
-
...
|
|
20
|
-
...
|
|
31
|
+
...preferences.groupFrequencyByGroupId,
|
|
32
|
+
...localOverrides.groupFrequencyByGroupId,
|
|
21
33
|
},
|
|
22
34
|
};
|
|
23
|
-
};
|
|
24
|
-
exports.getEffectiveNotificationPreferences = getEffectiveNotificationPreferences;
|
|
35
|
+
});
|
|
25
36
|
const getNotificationLocalOverrides = (state) => getView(state).localOverrides;
|
|
26
37
|
exports.getNotificationLocalOverrides = getNotificationLocalOverrides;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Object.keys(overrides.groupFrequencyByGroupId).length > 0);
|
|
31
|
-
};
|
|
32
|
-
exports.hasUnsavedNotificationPreferences = hasUnsavedNotificationPreferences;
|
|
38
|
+
exports.hasUnsavedNotificationPreferences = (0, toolkit_1.createSelector)((state) => getView(state).localOverrides, (localOverrides) => Object.keys(localOverrides.eventEnabledByChannel).length > 0 ||
|
|
39
|
+
Object.keys(localOverrides.groupChannelEnabledByGroupId).length > 0 ||
|
|
40
|
+
Object.keys(localOverrides.groupFrequencyByGroupId).length > 0);
|
|
@@ -2,6 +2,7 @@ import { FetchStateAndError } from '../../commonStateTypes/common';
|
|
|
2
2
|
import { NotificationChannel, NotificationFrequency } from '../../entity/notificationRegistry/notificationRegistryState';
|
|
3
3
|
export interface NotificationPreferences {
|
|
4
4
|
eventEnabledByChannel: Record<string, Partial<Record<NotificationChannel, boolean>>>;
|
|
5
|
+
groupChannelEnabledByGroupId: Record<string, Partial<Record<NotificationChannel, boolean>>>;
|
|
5
6
|
groupFrequencyByGroupId: Record<string, NotificationFrequency>;
|
|
6
7
|
}
|
|
7
8
|
export interface NotificationPreferencesViewState {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.emptyNotificationPreferences = void 0;
|
|
4
4
|
const emptyNotificationPreferences = () => ({
|
|
5
5
|
eventEnabledByChannel: {},
|
|
6
|
+
groupChannelEnabledByGroupId: {},
|
|
6
7
|
groupFrequencyByGroupId: {},
|
|
7
8
|
});
|
|
8
9
|
exports.emptyNotificationPreferences = emptyNotificationPreferences;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.72-betaRD1",
|
|
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",
|