From b6aca366b2baac5214204618681b6e3a55b01544 Mon Sep 17 00:00:00 2001 From: abuyoyo Date: Sun, 1 Sep 2024 07:38:13 +0300 Subject: [PATCH] Mutation Observer replaces DOMNodeRemoved event --- js/notice_manager_panel.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/js/notice_manager_panel.js b/js/notice_manager_panel.js index 4e5e271..76cf682 100644 --- a/js/notice_manager_panel.js +++ b/js/notice_manager_panel.js @@ -44,6 +44,7 @@ const NoticeManager = function ($) { let dismissNoticesButton let haveClosed // set to true on first close/collect + let panelObserver return { bootstrap: () => { @@ -192,16 +193,14 @@ const NoticeManager = function ($) { * When dismissible notices are dismissed, check if any notices are left on page. * If no notices are left - remove Notice Panel entirely */ - $(document).on( - "DOMNodeRemoved", - "#meta-link-notices-wrap div.notice", - () => { - notices = panel - .find(selectors_all.join(", ")) - .filter(":visible") - NoticeManager.maybeRemoveNoticesPanel() - } - ) + panelObserver = new MutationObserver(() => { + notices = panel + .find(selectors_all.join(", ")) + .filter(":visible") + NoticeManager.maybeRemoveNoticesPanel() + }); + panelObserver.observe(panel.get(0), { childList: true, subtree: true }); // only run once + }, addCounter: () => {