ソースを参照

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 5 年 前
コミット
2e3cc12d9a
2 ファイル変更3 行追加6 行削除
  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 ************************/
         /************************ 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) {
             if (container) {
                 container.innerHTML = '';
                 container.innerHTML = '';
             }
             }

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

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