From 1463f9bafed86c8a3bc01f33028457e9b12d4953 Mon Sep 17 00:00:00 2001 From: wanhose Date: Thu, 19 May 2022 15:52:10 +0200 Subject: [PATCH] fix(browser-extension): skip match already matched --- packages/browser-extension/src/scripts/content.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/browser-extension/src/scripts/content.js b/packages/browser-extension/src/scripts/content.js index fdb3936..1a422df 100644 --- a/packages/browser-extension/src/scripts/content.js +++ b/packages/browser-extension/src/scripts/content.js @@ -61,23 +61,26 @@ const target = document.body || document.documentElement; /** * @description Checks if node element is removable * @param {any} node + * @param {boolean} skipMatch * @returns {boolean} */ -const check = (node) => +const check = (node, skipMatch) => node instanceof HTMLElement && node.parentElement && !['BODY', 'HTML'].includes(node.tagName) && !(node.id && ['APP', 'ROOT'].includes(node.id.toUpperCase?.())) && - node.matches(selectors); + (skipMatch || node.matches(selectors)); /** * @description Cleans DOM * @param {HTMLElement[]} nodes + * @param {boolean} skipMatch * @returns {void} */ -const clean = (nodes) => nodes.filter(check).forEach((node) => (node.outerHTML = '')); +const clean = (nodes, skipMatch) => + nodes.filter((node) => check(node, skipMatch)).forEach((node) => (node.outerHTML = '')); /** * @description Fixes scroll issues @@ -149,8 +152,8 @@ document.addEventListener('readystatechange', () => { const nodes = selectors.length ? Array.from(document.querySelectorAll(selectors)) : []; fix(); - clean(nodes); - setTimeout(() => clean(nodes), 2000); + clean(nodes, true); + setTimeout(() => clean(nodes, true), 2000); } }); });