mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-05-24 19:54:07 +03:00
improve code
This commit is contained in:
@@ -62,15 +62,15 @@ module.exports = () => {
|
||||
({ close, url, output } = await createRollupBundle(dirname(file), true, config.quiet));
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ page, browserName }) => {
|
||||
test.beforeEach(async ({ page, browserName }, { config }) => {
|
||||
await page.goto(url);
|
||||
if (browserName === 'chromium') {
|
||||
if (browserName === 'chromium' && config.quiet) {
|
||||
await page.coverage.startJSCoverage();
|
||||
}
|
||||
});
|
||||
|
||||
test.afterEach(async ({ page, browserName }, { file }) => {
|
||||
if (browserName === 'chromium') {
|
||||
test.afterEach(async ({ page, browserName }, { file, config }) => {
|
||||
if (browserName === 'chromium' && config.quiet) {
|
||||
const coverage = await page.coverage.stopJSCoverage();
|
||||
await collectCoverage(originalCwd, dirname(output), coverage, file);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { OverlayScrollbars } from 'overlayscrollbars';
|
||||
|
||||
const targets: Set<Element> = new Set();
|
||||
const targetInstanceMap: WeakMap<Element, OverlayScrollbars> = new WeakMap();
|
||||
|
||||
/**
|
||||
@@ -10,7 +9,6 @@ const targetInstanceMap: WeakMap<Element, OverlayScrollbars> = new WeakMap();
|
||||
*/
|
||||
export const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {
|
||||
targetInstanceMap.set(target, osInstance);
|
||||
targets.add(target);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -19,7 +17,6 @@ export const addInstance = (target: Element, osInstance: OverlayScrollbars): voi
|
||||
*/
|
||||
export const removeInstance = (target: Element): void => {
|
||||
targetInstanceMap.delete(target);
|
||||
targets.delete(target);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -28,26 +25,3 @@ export const removeInstance = (target: Element): void => {
|
||||
*/
|
||||
export const getInstance = (target: Element): OverlayScrollbars | undefined =>
|
||||
targetInstanceMap.get(target);
|
||||
|
||||
/**
|
||||
* Gets a Map which represents all active OverayScrollbars instances.
|
||||
* The Key is the element and the value is the instance.
|
||||
*/
|
||||
export const allInstances = (): ReadonlyMap<Element, OverlayScrollbars> => {
|
||||
const validTargetInstanceMap: Map<Element, OverlayScrollbars> = new Map();
|
||||
|
||||
targets.forEach((target: Element) => {
|
||||
/* istanbul ignore else */
|
||||
if (targetInstanceMap.has(target)) {
|
||||
validTargetInstanceMap.set(target, targetInstanceMap.get(target)!);
|
||||
}
|
||||
});
|
||||
|
||||
targets.clear();
|
||||
|
||||
validTargetInstanceMap.forEach((instance: OverlayScrollbars, validTarget: Element) => {
|
||||
targets.add(validTarget);
|
||||
});
|
||||
|
||||
return validTargetInstanceMap;
|
||||
};
|
||||
|
||||
@@ -181,7 +181,7 @@ export const createStructureSetupElements = (
|
||||
const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj;
|
||||
const destroyFns: (() => any)[] = [];
|
||||
const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host);
|
||||
const targetContents = isTextarea
|
||||
let targetContents = isTextarea
|
||||
? _target
|
||||
: contents(
|
||||
[_content, _viewport, _padding, _host, _target].find(
|
||||
@@ -240,6 +240,9 @@ export const createStructureSetupElements = (
|
||||
insertBefore(_viewport, _viewportArrange);
|
||||
push(destroyFns, removeElements.bind(0, _viewportArrange));
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
targetContents = 0;
|
||||
};
|
||||
|
||||
return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { addInstance, removeInstance, getInstance, allInstances } from 'instances';
|
||||
import { addInstance, removeInstance, getInstance } from 'instances';
|
||||
import { OverlayScrollbars } from 'overlayscrollbars';
|
||||
|
||||
const testElm = document.body;
|
||||
@@ -12,14 +12,14 @@ describe('instances', () => {
|
||||
test('add instance', () => {
|
||||
addInstance(testElm, testInstance);
|
||||
|
||||
expect(allInstances().size).toBe(1);
|
||||
expect(getInstance(testElm)).toBe(testInstance);
|
||||
});
|
||||
|
||||
test('remove instance', () => {
|
||||
addInstance(testElm, testInstance);
|
||||
removeInstance(testElm);
|
||||
|
||||
expect(allInstances().size).toBe(0);
|
||||
expect(getInstance(testElm)).toBe(undefined);
|
||||
});
|
||||
|
||||
test('get instance', () => {
|
||||
|
||||
Reference in New Issue
Block a user