Преглед изворни кода

Only initialize presence collection after login

JC Brand пре 7 година
родитељ
комит
c0080390a7
2 измењених фајлова са 11 додато и 8 уклоњено
  1. 1 1
      src/converse-chatboxes.js
  2. 10 7
      src/converse-roster.js

+ 1 - 1
src/converse-chatboxes.js

@@ -839,7 +839,7 @@
                 delete _converse.chatboxes.browserStorage;
             });
 
-            _converse.api.listen.on('statusInitialized', () => _converse.chatboxes.onConnected());
+            _converse.api.listen.on('presencesInitialized', () => _converse.chatboxes.onConnected());
             /************************ END Event Handlers ************************/
 
 

+ 10 - 7
src/converse-roster.js

@@ -754,7 +754,7 @@
             _converse.api.listen.on('beforeTearDown', _converse.unregisterPresenceHandler());
 
             _converse.api.listen.on('afterTearDown', () => {
-                if (_converse.presence) {
+                if (_converse.presences) {
                     _converse.presences.off().reset(); // Remove presences
                 }
             });
@@ -765,14 +765,17 @@
                 }
             });
 
-            _converse.api.listen.on('connectionInitialized', () => {
-                _converse.presences = new _converse.Presences();
-                _converse.presences.browserStorage = 
-                    new Backbone.BrowserStorage.session(b64_sha1(`converse.presences-${_converse.bare_jid}`));
-                _converse.presences.fetch();
+            _converse.api.listen.on('statusInitialized', (reconnecting) => {
+                if (!reconnecting) {
+                    _converse.presences = new _converse.Presences();
+                    _converse.presences.browserStorage = 
+                        new Backbone.BrowserStorage.session(b64_sha1(`converse.presences-${_converse.bare_jid}`));
+                    _converse.presences.fetch();
+                }
+                _converse.emit('presencesInitialized', reconnecting);
             });
 
-            _converse.api.listen.on('statusInitialized', (reconnecting) => {
+            _converse.api.listen.on('presencesInitialized', (reconnecting) => {
                 if (reconnecting) {
                     // No need to recreate the roster, otherwise we lose our
                     // cached data. However we still emit an event, to give