Forráskód Böngészése

Bugfix. `beforeTearDown` event handler not fired in tests

JC Brand 6 éve
szülő
commit
a422f07866
3 módosított fájl, 9 hozzáadás és 4 törlés
  1. 5 3
      src/converse-chatview.js
  2. 1 1
      src/converse-core.js
  3. 3 0
      src/converse-modal.js

+ 5 - 3
src/converse-chatview.js

@@ -110,9 +110,11 @@
             emojione.ascii = true;
 
             function onWindowStateChanged (data) {
-                _converse.chatboxviews.each(function (chatboxview) {
-                    chatboxview.onWindowStateChanged(data.state);
-                });
+                if (_converse.chatboxviews) {
+                    _converse.chatboxviews.each(chatboxview => {
+                        chatboxview.onWindowStateChanged(data.state);
+                    });
+                }
             }
             _converse.api.listen.on('windowStateChanged', onWindowStateChanged);
 

+ 1 - 1
src/converse-core.js

@@ -343,9 +343,9 @@
             delete _converse.controlboxtoggle;
             delete _converse.chatboxviews;
             _converse.connection.reset();
-            _converse.off();
             _converse.stopListening();
             _converse.tearDown();
+            _converse.off();
         }
 
         if ('onpagehide' in window) {

+ 3 - 0
src/converse-modal.js

@@ -66,6 +66,9 @@
             });
 
             _converse.api.listen.on('afterTearDown', () => {
+                if (!_converse.chatboxviews) {
+                    return;
+                }
                 const container = _converse.chatboxviews.el.querySelector("#converse-modals");
                 if (container) {
                     container.innerHTML = '';