Page MenuHomePhorge

D14896.1765013128.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D14896.1765013128.diff

diff --git a/lib/reducers/holder-reducer.js b/lib/reducers/holder-reducer.js
--- a/lib/reducers/holder-reducer.js
+++ b/lib/reducers/holder-reducer.js
@@ -1,5 +1,6 @@
// @flow
+import { setClientDBStoreActionType } from '../actions/client-db-store-actions.js';
import {
processHoldersActionTypes,
storeEstablishedHolderActionType,
@@ -17,6 +18,33 @@
holderStatuses,
} from '../types/holder-types.js';
import type { BaseAction } from '../types/redux-types.js';
+import { getMessageForException } from '../utils/errors.js';
+import { assertObjectsAreEqual } from '../utils/objects.js';
+
+function assertHolderStoresAreEqual(
+ processedHolderStore: HolderStore,
+ expectedHolderStore: HolderStore,
+ location: string,
+ onStateDifference?: (message: string) => mixed,
+) {
+ try {
+ assertObjectsAreEqual(
+ processedHolderStore,
+ expectedHolderStore,
+ `HolderStore - ${location}`,
+ );
+ } catch (e) {
+ console.log(
+ 'Error processing HolderStore ops',
+ processedHolderStore,
+ expectedHolderStore,
+ );
+ const message = `Error processing HolderStore ops ${
+ getMessageForException(e) ?? '{no exception message}'
+ }`;
+ onStateDifference?.(message);
+ }
+}
const mapResultsToHolderItems: (
status: HolderStatus,
@@ -41,6 +69,7 @@
function reduceHolderStore(
store: HolderStore,
action: BaseAction,
+ onStateDifference?: (message: string) => mixed,
): ReduceHolderStoreResult {
if (action.type === storeEstablishedHolderActionType) {
const { blobHash, holder } = action.payload;
@@ -123,6 +152,20 @@
holderStore: processHolderStoreOperations(store, holderStoreOperations),
holderStoreOperations,
};
+ } else if (action.type === setClientDBStoreActionType) {
+ const newHolderStore = action.payload.holders ?? {};
+
+ assertHolderStoresAreEqual(
+ { ...store, storedHolders: newHolderStore },
+ store,
+ action.type,
+ onStateDifference,
+ );
+
+ return {
+ holderStore: store,
+ holderStoreOperations: [],
+ };
}
return { holderStore: store, holderStoreOperations: [] };
}
diff --git a/lib/reducers/master-reducer.js b/lib/reducers/master-reducer.js
--- a/lib/reducers/master-reducer.js
+++ b/lib/reducers/master-reducer.js
@@ -226,7 +226,11 @@
const { store: queuedDMOperations, operations: dmOperationStoreOperations } =
reduceDMOperationsQueue(state.queuedDMOperations, action);
- const { holderStore } = reduceHolderStore(state.holderStore, action);
+ const { holderStore } = reduceHolderStore(
+ state.holderStore,
+ action,
+ onStateDifferenceForStaff,
+ );
let storeOperations = {
draftStoreOperations,

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 9:25 AM (3 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5835809
Default Alt Text
D14896.1765013128.diff (2 KB)

Event Timeline