From f5ccc02959196955cbadfb1de823c1beeeb8674b Mon Sep 17 00:00:00 2001 From: Rene Date: Tue, 28 Jun 2022 02:16:50 +0200 Subject: [PATCH] improve code --- packages/overlayscrollbars/src/overlayscrollbars.ts | 9 ++++++++- .../src/setups/structureSetup/structureSetup.ts | 12 ++---------- .../tests/jest/support/utils/arrays.test.ts | 8 ++++---- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/overlayscrollbars/src/overlayscrollbars.ts b/packages/overlayscrollbars/src/overlayscrollbars.ts index de27ec7..42ce05e 100644 --- a/packages/overlayscrollbars/src/overlayscrollbars.ts +++ b/packages/overlayscrollbars/src/overlayscrollbars.ts @@ -58,7 +58,11 @@ export const OverlayScrollbars: OverlayScrollbarsStatic = ( options?, eventListeners? ): OverlayScrollbars => { - const { _getDefaultOptions, _nativeScrollbarIsOverlaid } = getEnvironment(); + const { + _getDefaultOptions, + _nativeScrollbarIsOverlaid, + _addListener: addEnvListener, + } = getEnvironment(); const plugins = getPlugins(); const instanceTarget = isHTMLElement(target) ? target : target.target; const potentialInstance = getInstance(instanceTarget); @@ -130,6 +134,8 @@ export const OverlayScrollbars: OverlayScrollbarsStatic = ( }); }); + const removeEnvListener = addEnvListener(update.bind(0, {}, true)); + const instance: OverlayScrollbars = { options(newOptions?: PartialOptions) { if (newOptions) { @@ -152,6 +158,7 @@ export const OverlayScrollbars: OverlayScrollbarsStatic = ( }, destroy: () => { removeInstance(instanceTarget); + removeEnvListener(); removeEvent(); destroyScrollbars(); diff --git a/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.ts b/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.ts index 663b866..7623827 100644 --- a/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.ts +++ b/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.ts @@ -1,12 +1,9 @@ import { runEach } from 'support'; -import { getEnvironment } from 'environment'; import { createState, createOptionCheck } from 'setups/setups'; import { createStructureSetupElements } from 'setups/structureSetup/structureSetup.elements'; -import { - createStructureSetupUpdate, - StructureSetupUpdateHints, -} from 'setups/structureSetup/structureSetup.update'; +import { createStructureSetupUpdate } from 'setups/structureSetup/structureSetup.update'; import { createStructureSetupObservers } from 'setups/structureSetup/structureSetup.observers'; +import type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update'; import type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements'; import type { TRBL, CacheValues, XY, WH } from 'support'; import type { OSOptions } from 'options'; @@ -91,10 +88,6 @@ export const createStructureSetup = ( } ); - const removeEnvListener = getEnvironment()._addListener( - updateStructure.bind(0, checkOptionsFallback, {}, true) - ); - const structureSetupState = getUpdateState.bind(0) as (() => StructureSetupState) & StructureSetupStaticState; structureSetupState._addOnUpdatedListener = (listener) => { @@ -111,7 +104,6 @@ export const createStructureSetup = ( structureSetupState, () => { onUpdatedListeners.clear(); - removeEnvListener(); destroyObservers(); destroyElements(); }, diff --git a/packages/overlayscrollbars/tests/jest/support/utils/arrays.test.ts b/packages/overlayscrollbars/tests/jest/support/utils/arrays.test.ts index fb72bdb..70014cf 100644 --- a/packages/overlayscrollbars/tests/jest/support/utils/arrays.test.ts +++ b/packages/overlayscrollbars/tests/jest/support/utils/arrays.test.ts @@ -292,20 +292,20 @@ describe('array utilities', () => { describe('runEach', () => { test('array', () => { const arr = [jest.fn(), null, jest.fn(), undefined, jest.fn()]; - runEach(arr); + runEach(arr, ['a', 'b', 'c', 'd']); arr.forEach((fn) => { if (fn) { - expect(fn).toHaveBeenCalled(); + expect(fn).toHaveBeenCalledWith('a', 'b', 'c', 'd'); } }); }); test('set', () => { const set = new Set([jest.fn(), null, jest.fn(), undefined, jest.fn()]); - runEach(set); + runEach(set, [1, 2, 3, 4]); set.forEach((fn) => { if (fn) { - expect(fn).toHaveBeenCalled(); + expect(fn).toHaveBeenCalledWith(1, 2, 3, 4); } }); });