Only add DOM change listener once in `Ui/Empty`
authorMatthias Schmidt <gravatronics@live.com>
Tue, 16 Mar 2021 11:26:06 +0000 (12:26 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Tue, 16 Mar 2021 11:26:17 +0000 (12:26 +0100)
See #4073

ts/WoltLabSuite/Core/Ui/Empty.ts
wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Empty.js

index fd2074c147c7a77ed0947daa22c84987ee8604db..8f025ed1ea2d61ec7b5eca35c874b4d7d3d34ba7 100644 (file)
@@ -28,13 +28,15 @@ const observer = new MutationObserver((mutations) => {
   });
 });
 
-export function setup(): void {
+function observeElements(): void {
   document.querySelectorAll(".jsReloadPageWhenEmpty").forEach((el) => {
     el.classList.remove("jsReloadPageWhenEmpty");
     observer.observe(el, {
       childList: true,
     });
   });
-
-  DomChangeListener.add("WoltLabSuite/Core/Ui/Empty", () => setup());
+}
+export function setup(): void {
+  observeElements();
+  DomChangeListener.add("WoltLabSuite/Core/Ui/Empty", () => observeElements());
 }
index 6747b2c3c2c7a8f1e619876ed43fd6b44dee771d..aa3358fa572858e94991ef8f1b5fe8a23c88afac 100644 (file)
@@ -27,14 +27,17 @@ define(["require", "exports", "tslib", "../Dom/Change/Listener"], function (requ
             }
         });
     });
-    function setup() {
+    function observeElements() {
         document.querySelectorAll(".jsReloadPageWhenEmpty").forEach((el) => {
             el.classList.remove("jsReloadPageWhenEmpty");
             observer.observe(el, {
                 childList: true,
             });
         });
-        Listener_1.default.add("WoltLabSuite/Core/Ui/Empty", () => setup());
+    }
+    function setup() {
+        observeElements();
+        Listener_1.default.add("WoltLabSuite/Core/Ui/Empty", () => observeElements());
     }
     exports.setup = setup;
 });