Mutation Observer replaces DOMNodeRemoved event

This commit is contained in:
abuyoyo 2024-09-01 07:38:13 +03:00
parent 7cc5b6de5a
commit b6aca366b2

View File

@ -44,6 +44,7 @@ const NoticeManager = function ($) {
let dismissNoticesButton let dismissNoticesButton
let haveClosed // set to true on first close/collect let haveClosed // set to true on first close/collect
let panelObserver
return { return {
bootstrap: () => { bootstrap: () => {
@ -192,16 +193,14 @@ const NoticeManager = function ($) {
* When dismissible notices are dismissed, check if any notices are left on page. * When dismissible notices are dismissed, check if any notices are left on page.
* If no notices are left - remove Notice Panel entirely * If no notices are left - remove Notice Panel entirely
*/ */
$(document).on( panelObserver = new MutationObserver(() => {
"DOMNodeRemoved", notices = panel
"#meta-link-notices-wrap div.notice", .find(selectors_all.join(", "))
() => { .filter(":visible")
notices = panel NoticeManager.maybeRemoveNoticesPanel()
.find(selectors_all.join(", ")) });
.filter(":visible") panelObserver.observe(panel.get(0), { childList: true, subtree: true }); // only run once
NoticeManager.maybeRemoveNoticesPanel()
}
)
}, },
addCounter: () => { addCounter: () => {