Forráskód Böngészése

Prevented nickname form double rendering by hiding if already present

Ariel Fuggini 5 éve
szülő
commit
bb5867d0b0
1 módosított fájl, 17 hozzáadás és 2 törlés
  1. 17 2
      src/converse-muc-views.js

+ 17 - 2
src/converse-muc-views.js

@@ -1242,7 +1242,7 @@ converse.plugins.add('converse-muc-views', {
             onConnectionStatusChanged () {
                 const conn_status = this.model.session.get('connection_status');
                 if (conn_status === converse.ROOMSTATUS.NICKNAME_REQUIRED) {
-                    this.renderNicknameForm();
+                    this.showNicknameForm();
                 } else if (conn_status === converse.ROOMSTATUS.PASSWORD_REQUIRED) {
                     this.renderPasswordForm();
                 } else if (conn_status === converse.ROOMSTATUS.CONNECTING) {
@@ -1679,6 +1679,15 @@ converse.plugins.add('converse-muc-views', {
                 return true;
             },
 
+            showNicknameForm () {
+                const isNicknameFormRendered = !!this.el.querySelector('.muc-nickname-form');
+                if (isNicknameFormRendered) {
+                    this.showNicknameFormContents();
+                } else {
+                    this.renderNicknameForm();
+                }
+            },
+
             /**
              * Renders a form given an IQ stanza containing the current
              * groupchat configuration.
@@ -1773,6 +1782,12 @@ converse.plugins.add('converse-muc-views', {
                 }
             },
 
+            showNicknameFormContents () {
+                const container_el = this.el.querySelector('.muc-nickname-form');
+                this.hideSpinner();
+                container_el.classList.remove('hidden')
+            },
+
             renderPasswordForm () {
                 this.hideChatRoomContents();
                 const message = this.model.get('password_validation_message');
@@ -1928,7 +1943,7 @@ converse.plugins.add('converse-muc-views', {
             renderAfterTransition () {
                 const conn_status = this.model.session.get('connection_status')
                 if (conn_status == converse.ROOMSTATUS.NICKNAME_REQUIRED) {
-                    this.renderNicknameForm();
+                    this.showNicknameForm();
                 } else if (conn_status == converse.ROOMSTATUS.PASSWORD_REQUIRED) {
                     this.renderPasswordForm();
                 } else if (conn_status == converse.ROOMSTATUS.ENTERED) {