diff --git a/ivette/.dome-pkg-app.lock b/ivette/.dome-pkg-app.lock index 7282f0cc447a1caf3cb155d03008966d7b2f41ab..f9677904486a71fb448d4a6db632128c0d3013ac 100644 --- a/ivette/.dome-pkg-app.lock +++ b/ivette/.dome-pkg-app.lock @@ -1 +1 @@ -react@^16.8 react-dom source-map-support lodash react-virtualized react-draggable codemirror +react@^16.8 react-dom source-map-support lodash react-virtualized react-draggable react-fast-compare codemirror diff --git a/ivette/package.json b/ivette/package.json index d77d420e12005ff11011b27dd7bca04d6531db44..c64081d369b41efd624bd2c93e58da8180866fa5 100644 --- a/ivette/package.json +++ b/ivette/package.json @@ -44,7 +44,6 @@ "eslint-plugin-react-hooks": "^3.0.0", "html-loader": "1.0.0-alpha.0", "jsdoc": "^3.6.3", - "react-fast-compare": "^3.2.0", "react-hot-loader": "^4.12.20", "serve": "^11.3.0", "typedoc": "^0.17.6", @@ -62,6 +61,7 @@ "react-draggable": "^4.2.0", "react-virtualized": "^9.21.2", "source-map-support": "^0.5.16", + "react-fast-compare": "^3.2.0", "zeromq": "^6.0.0-beta.5" } } diff --git a/ivette/src/dome/src/renderer/data/compare.ts b/ivette/src/dome/src/renderer/data/compare.ts index 47c98b71a459a09100cb30fc07aa729fb72e0a0b..5f643b4cc8598d834e39ed8eb593616f6345294d 100644 --- a/ivette/src/dome/src/renderer/data/compare.ts +++ b/ivette/src/dome/src/renderer/data/compare.ts @@ -8,6 +8,8 @@ @module dome/data/compare */ +import FastCompare from 'react-fast-compare'; + /** Interface for comparison functions. These function shall fullfill the following contract: @@ -22,11 +24,19 @@ export interface Order<A> { (x: A, y: A): number; } +/** + Deep structural equality. + Provided by [react-fast-compare](). +*/ +export const isEqual = FastCompare; + +/** Always returns 0. */ export function equal(_x: any, _y: any): 0 { return 0; } +/** Primitive comparison works on this type. */ export type bignum = bigint | number; -/** Non-NaN numbers and big-ints */ +/** Detect Non-NaN numbers and big-ints. */ export function isBigNum(x: any): x is bignum { return typeof (x) === 'bigint' || (typeof (x) === 'number' && !Number.isNaN(x)); } diff --git a/ivette/src/dome/template/makefile.packages b/ivette/src/dome/template/makefile.packages index 05b8cb03aece9be54813a53d3952d9e804943839..34a494d77320ff171a14873d6eb15b4456e9bbc0 100644 --- a/ivette/src/dome/template/makefile.packages +++ b/ivette/src/dome/template/makefile.packages @@ -25,6 +25,7 @@ DOME_APP_PACKAGES= \ lodash \ react-virtualized \ react-draggable \ + react-fast-compare \ codemirror # --------------------------------------------------------------------------