Skip to content

Commit 0bc23f8

Browse files
committed
[objarr] Fix for #287
1 parent 34f7f5a commit 0bc23f8

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

src/common/obj.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export const objIsEqual = (
8686
isObject(value1)
8787
? /*! istanbul ignore next */
8888
isObject(obj2[index])
89-
? objIsEqual(obj2[index] as any, value1 as any)
89+
? objIsEqual(obj2[index] as any, value1 as any, isEqual)
9090
: false
9191
: isEqual(value1, obj2[index]),
9292
)

src/ui-react/hooks.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,12 @@ const DEFAULTS = [
360360
false,
361361
0,
362362
];
363+
const cellOrValueEqual = (thing1: any, thing2: any): boolean =>
364+
thing1 === thing2 ||
365+
((isObject(thing1) || isArray(thing1)) &&
366+
jsonString(thing1) === jsonString(thing2));
363367
const IS_EQUALS: ((thing1: any, thing2: any) => boolean)[] = [
364-
objIsEqual,
368+
(obj1: any, obj2: any) => objIsEqual(obj1, obj2, cellOrValueEqual),
365369
arrayIsEqual,
366370
(
367371
[backwardIds1, currentId1, forwardIds1]: CheckpointIds,
@@ -373,10 +377,7 @@ const IS_EQUALS: ((thing1: any, thing2: any) => boolean)[] = [
373377
(paramValues1: ParamValues, paramValues2: ParamValues): boolean =>
374378
objIsEqual(paramValues1, paramValues2, arrayOrValueEqual),
375379
arrayOrValueEqual,
376-
(thing1: any, thing2: any): boolean =>
377-
thing1 === thing2 ||
378-
((isObject(thing1) || isArray(thing1)) &&
379-
jsonString(thing1) === jsonString(thing2)),
380+
cellOrValueEqual,
380381
];
381382
const isEqual = (thing1: any, thing2: any) => thing1 === thing2;
382383

0 commit comments

Comments
 (0)