Prechádzať zdrojové kódy

Remove global event listener when appropriate.

Otherwise trimChats called in `fullscreen` tests (due to being
registered in a previous test)
JC Brand 6 rokov pred
rodič
commit
6ec183451d
3 zmenil súbory, kde vykonal 20 pridanie a 18 odobranie
  1. 11 9
      dist/converse.js
  2. 8 8
      src/converse-minimize.js
  3. 1 1
      src/headless/converse-core.js

+ 11 - 9
dist/converse.js

@@ -53176,15 +53176,17 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins
       _converse.emit('minimizedChatsInitialized');
     }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
 
-    _converse.on('registeredGlobalEventHandlers', function () {
-      window.addEventListener("resize", _.debounce(function (ev) {
-        if (_converse.connection.connected) {
-          _converse.chatboxviews.trimChats();
-        }
-      }, 200));
-    });
+    const debouncedTrim = _.debounce(ev => {
+      if (_converse.connection.connected) {
+        _converse.chatboxviews.trimChats();
+      }
+    }, 200);
+
+    _converse.api.listen.on('registeredGlobalEventHandlers', () => window.addEventListener("resize", debouncedTrim));
+
+    _converse.api.listen.on('unregisteredGlobalEventHandlers', () => window.removeEventListener("resize", debouncedTrim));
 
-    _converse.on('controlBoxOpened', function (chatbox) {
+    _converse.api.listen.on('controlBoxOpened', function (chatbox) {
       // Wrapped in anon method because at scan time, chatboxviews
       // attr not set yet.
       if (_converse.connection.connected) {
@@ -62951,7 +62953,7 @@ function finishInitialization() {
 function unregisterGlobalEventHandlers() {
   document.removeEventListener("visibilitychange", _converse.saveWindowState);
 
-  _converse.emit('registeredGlobalEventHandlers');
+  _converse.emit('unregisteredGlobalEventHandlers');
 }
 
 function cleanup() {

+ 8 - 8
src/converse-minimize.js

@@ -517,15 +517,15 @@ converse.plugins.add('converse-minimize', {
         }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
 
 
-        _converse.on('registeredGlobalEventHandlers', function () {
-            window.addEventListener("resize", _.debounce(function (ev) {
-                if (_converse.connection.connected) {
-                    _converse.chatboxviews.trimChats();
-                }
-            }, 200));
-        });
+        const debouncedTrim = _.debounce(ev => {
+            if (_converse.connection.connected) {
+                _converse.chatboxviews.trimChats();
+            }
+        }, 200);
+        _converse.api.listen.on('registeredGlobalEventHandlers', () => window.addEventListener("resize", debouncedTrim));
+        _converse.api.listen.on('unregisteredGlobalEventHandlers', () => window.removeEventListener("resize", debouncedTrim));
 
-        _converse.on('controlBoxOpened', function (chatbox) {
+        _converse.api.listen.on('controlBoxOpened', function (chatbox) {
             // Wrapped in anon method because at scan time, chatboxviews
             // attr not set yet.
             if (_converse.connection.connected) {

+ 1 - 1
src/headless/converse-core.js

@@ -435,7 +435,7 @@ function finishInitialization () {
 
 function unregisterGlobalEventHandlers () {
     document.removeEventListener("visibilitychange", _converse.saveWindowState);
-    _converse.emit('registeredGlobalEventHandlers');
+    _converse.emit('unregisteredGlobalEventHandlers');
 }
 
 function cleanup () {