From 5e22bf097a87800ccec7dd2898d9fb3cbc7291e8 Mon Sep 17 00:00:00 2001 From: redphx <96280+redphx@users.noreply.github.com> Date: Sun, 14 Jul 2024 09:17:12 +0700 Subject: [PATCH] Optimize checkHeader() --- src/modules/ui/header.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/modules/ui/header.ts b/src/modules/ui/header.ts index 9fa61ba..aaa1592 100644 --- a/src/modules/ui/header.ts +++ b/src/modules/ui/header.ts @@ -38,6 +38,7 @@ export class HeaderSection { ); static #observer: MutationObserver; + static #timeout: number | null; static #injectSettingsButton($parent?: HTMLElement) { if (!$parent) { @@ -60,9 +61,7 @@ export class HeaderSection { } static checkHeader() { - const $button = document.querySelector('.bx-header-settings-button'); - - if (!$button) { + if (!HeaderSection.#$buttonsWrapper.isConnected) { const $rightHeader = document.querySelector('#PageContent div[class*=EdgewaterHeader-module__rightSectionSpacing]'); HeaderSection.#injectSettingsButton($rightHeader as HTMLElement); } @@ -78,12 +77,10 @@ export class HeaderSection { return; } - let timeout: number | null; - HeaderSection.#observer && HeaderSection.#observer.disconnect(); HeaderSection.#observer = new MutationObserver(mutationList => { - timeout && clearTimeout(timeout); - timeout = window.setTimeout(HeaderSection.checkHeader, 2000); + HeaderSection.#timeout && clearTimeout(HeaderSection.#timeout); + HeaderSection.#timeout = window.setTimeout(HeaderSection.checkHeader, 2000); }); HeaderSection.#observer.observe($header, {subtree: true, childList: true});