From b6be7ba4825049d7d42b96348800c5e40d03afd5 Mon Sep 17 00:00:00 2001 From: Alex Radu Date: Thu, 4 Nov 2021 14:19:10 +0200 Subject: [PATCH] fix(overlays): fix condition in is-equal-config util and add null guard --- .changeset/sour-rules-rush.md | 5 +++++ packages/overlays/src/utils/is-equal-config.js | 2 +- .../test/utils-tests/is-equal-config.test.js | 12 ++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .changeset/sour-rules-rush.md diff --git a/.changeset/sour-rules-rush.md b/.changeset/sour-rules-rush.md new file mode 100644 index 000000000..3458ce9b1 --- /dev/null +++ b/.changeset/sour-rules-rush.md @@ -0,0 +1,5 @@ +--- +'@lion/overlays': patch +--- + +fix condition in is-equal-config util and add null guard diff --git a/packages/overlays/src/utils/is-equal-config.js b/packages/overlays/src/utils/is-equal-config.js index dba2eeede..779cedf23 100644 --- a/packages/overlays/src/utils/is-equal-config.js +++ b/packages/overlays/src/utils/is-equal-config.js @@ -11,7 +11,7 @@ * @returns {boolean} Whether the configs are equivalent */ export function isEqualConfig(a, b) { - if (typeof a !== 'object' || typeof a !== 'object') { + if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) { return a === b; } const aProps = Object.keys(a); diff --git a/packages/overlays/test/utils-tests/is-equal-config.test.js b/packages/overlays/test/utils-tests/is-equal-config.test.js index d13a77431..8cca3d814 100644 --- a/packages/overlays/test/utils-tests/is-equal-config.test.js +++ b/packages/overlays/test/utils-tests/is-equal-config.test.js @@ -23,6 +23,18 @@ describe('isEqualConfig()', () => { expect(isEqualConfig(config, config)).eql(true); }); + it('compares null props', () => { + const config = TestConfig(); + const nullPropConfig = { + ...config, + elementToFocusAfterHide: { + nullProp: null, + }, + }; + // @ts-ignore + expect(isEqualConfig(nullPropConfig, nullPropConfig)).eql(true); + }); + it('compares shallow props', () => { const config = TestConfig(); expect(isEqualConfig(config, { ...config })).eql(true);