瀏覽代碼

minimize: Use events instead of overriding `initialize` methods

JC Brand 5 年之前
父節點
當前提交
121a3f9bed
共有 1 個文件被更改,包括 7 次插入16 次删除
  1. 7 16
      src/converse-minimize.js

+ 7 - 16
src/converse-minimize.js

@@ -74,11 +74,6 @@ converse.plugins.add('converse-minimize', {
         },
         },
 
 
         ChatBoxView: {
         ChatBoxView: {
-            initialize () {
-                this.listenTo(this.model, 'change:minimized', this.onMinimizedChanged)
-                return this.__super__.initialize.apply(this, arguments);
-            },
-
             show () {
             show () {
                 const { _converse } = this.__super__;
                 const { _converse } = this.__super__;
                 if (_converse.api.settings.get("view_mode") === 'overlayed' && this.model.get('minimized')) {
                 if (_converse.api.settings.get("view_mode") === 'overlayed' && this.model.get('minimized')) {
@@ -130,15 +125,6 @@ converse.plugins.add('converse-minimize', {
         },
         },
 
 
         ChatRoomView: {
         ChatRoomView: {
-            initialize () {
-                this.listenTo(this.model, 'change:minimized', this.onMinimizedChanged)
-                const result = this.__super__.initialize.apply(this, arguments);
-                if (this.model.get('minimized')) {
-                    this.hide();
-                }
-                return result;
-            },
-
             getHeadingButtons () {
             getHeadingButtons () {
                 const { _converse } = this.__super__;
                 const { _converse } = this.__super__;
                 const buttons = this.__super__.getHeadingButtons.apply(this, arguments);
                 const buttons = this.__super__.getHeadingButtons.apply(this, arguments);
@@ -164,7 +150,6 @@ converse.plugins.add('converse-minimize', {
          * loaded by Converse.js's plugin machinery.
          * loaded by Converse.js's plugin machinery.
          */
          */
         const { _converse } = this;
         const { _converse } = this;
-        const { __ } = _converse;
         const { api } = _converse;
         const { api } = _converse;
 
 
         api.settings.update({'no_trimming': false});
         api.settings.update({'no_trimming': false});
@@ -567,9 +552,15 @@ converse.plugins.add('converse-minimize', {
         }
         }
 
 
         /************************ BEGIN Event Handlers ************************/
         /************************ BEGIN Event Handlers ************************/
-        api.listen.on('chatBoxViewsInitialized', () => initMinimizedChats());
         api.listen.on('chatBoxInsertedIntoDOM', view => _converse.chatboxviews.trimChats(view));
         api.listen.on('chatBoxInsertedIntoDOM', view => _converse.chatboxviews.trimChats(view));
+        api.listen.on('chatBoxViewsInitialized', () => initMinimizedChats());
         api.listen.on('controlBoxOpened', view => _converse.chatboxviews.trimChats(view));
         api.listen.on('controlBoxOpened', view => _converse.chatboxviews.trimChats(view));
+        api.listen.on('chatBoxViewInitialized', v => v.listenTo(v.model, 'change:minimized', v.onMinimizedChanged));
+
+        api.listen.on('chatRoomViewInitialized', view => {
+            view.listenTo(view.model, 'change:minimized', view.onMinimizedChanged)
+            view.model.get('minimized') && view.hide();
+        });
 
 
         const debouncedTrimChats = debounce(() => _converse.chatboxviews.trimChats(), 250);
         const debouncedTrimChats = debounce(() => _converse.chatboxviews.trimChats(), 250);
         api.listen.on('registeredGlobalEventHandlers', () => window.addEventListener("resize", debouncedTrimChats));
         api.listen.on('registeredGlobalEventHandlers', () => window.addEventListener("resize", debouncedTrimChats));