Ver Fonte

Ensure new contact is attached to existing chatbox

When a new contact is added, check if we already have a chatbox open for it,
and if so attach it to the chatbox.
JC Brand há 6 anos atrás
pai
commit
9b0e23dcc6
2 ficheiros alterados com 27 adições e 0 exclusões
  1. 15 0
      dist/converse.js
  2. 12 0
      src/converse-chatboxviews.js

+ 15 - 0
dist/converse.js

@@ -49082,6 +49082,21 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins
     });
     /************************ BEGIN Event Handlers ************************/
 
+    _converse.api.waitUntil('rosterContactsFetched').then(() => {
+      _converse.roster.on('add', contact => {
+        /* When a new contact is added, check if we already have a
+         * chatbox open for it, and if so attach it to the chatbox.
+         */
+        const chatbox = _converse.chatboxes.findWhere({
+          'jid': contact.get('jid')
+        });
+
+        if (chatbox) {
+          chatbox.addRelatedContact(contact);
+        }
+      });
+    });
+
     _converse.api.listen.on('chatBoxesInitialized', () => {
       _converse.chatboxviews = new _converse.ChatBoxViews({
         'model': _converse.chatboxes

+ 12 - 0
src/converse-chatboxviews.js

@@ -152,6 +152,18 @@ converse.plugins.add('converse-chatboxviews', {
 
 
         /************************ BEGIN Event Handlers ************************/
+        _converse.api.waitUntil('rosterContactsFetched').then(() => {
+            _converse.roster.on('add', (contact) => {
+                /* When a new contact is added, check if we already have a
+                 * chatbox open for it, and if so attach it to the chatbox.
+                 */
+                const chatbox = _converse.chatboxes.findWhere({'jid': contact.get('jid')});
+                if (chatbox) {
+                    chatbox.addRelatedContact(contact);
+                }
+            });
+        });
+
         _converse.api.listen.on('chatBoxesInitialized', () => {
             _converse.chatboxviews = new _converse.ChatBoxViews({
                 'model': _converse.chatboxes