Explorar o código

Bugfix. Only remove modals when disconnected

not while tearing down, otherwise the modals get removed while
reconnecting and we have stale references to modals no longer in the
DOM.
JC Brand %!s(int64=5) %!d(string=hai) anos
pai
achega
2e3cc12d9a
Modificáronse 2 ficheiros con 3 adicións e 6 borrados
  1. 2 5
      src/converse-modal.js
  2. 1 1
      src/headless/converse-chat.js

+ 2 - 5
src/converse-modal.js

@@ -144,11 +144,8 @@ converse.plugins.add('converse-modal', {
 
 
         /************************ BEGIN Event Listeners ************************/
-        _converse.api.listen.on('afterTearDown', () => {
-            if (!_converse.chatboxviews) {
-                return;
-            }
-            const container = _converse.chatboxviews.el.querySelector("#converse-modals");
+        _converse.api.listen.on('disconnect', () => {
+            const container = document.querySelector("#converse-modals");
             if (container) {
                 container.innerHTML = '';
             }

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

@@ -1239,7 +1239,7 @@ converse.plugins.add('converse-chat', {
 
         /************************ BEGIN Event Handlers ************************/
         _converse.api.listen.on('chatBoxesFetched', autoJoinChats);
-        _converse.api.listen.on('presencesInitialized', () => registerMessageHandlers());
+        _converse.api.listen.on('presencesInitialized', registerMessageHandlers);
 
         _converse.api.listen.on('clearSession', () => {
             if (_converse.shouldClearCache()) {