Переглянути джерело

Show animation when a message has been corrected

updates #421
JC Brand 7 роки тому
батько
коміт
a9bb99a1a7
2 змінених файлів з 19 додано та 2 видалено
  1. 10 1
      dist/converse.js
  2. 9 1
      src/converse-message-view.js

+ 10 - 1
dist/converse.js

@@ -74587,7 +74587,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
 
         initialize() {
           this.model.vcard.on('change', this.render, this);
-          this.model.on('change:correcting', this.render, this);
+          this.model.on('change:correcting', this.onMessageCorrection, this);
           this.model.on('change:message', this.render, this);
           this.model.on('change:progress', this.renderFileUploadProgresBar, this);
           this.model.on('change:type', this.render, this);
@@ -74617,6 +74617,15 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
           return this.el;
         },
 
+        onMessageCorrection() {
+          this.render();
+
+          if (!this.model.get('correcting') && this.model.changed.message) {
+            this.el.addEventListener('animationend', () => u.removeClass('onload', this.el));
+            u.addClass('onload', this.el);
+          }
+        },
+
         replaceElement(msg) {
           if (!_.isNil(this.el.parentElement)) {
             this.el.parentElement.replaceChild(msg, this.el);

+ 9 - 1
src/converse-message-view.js

@@ -91,7 +91,7 @@
 
                 initialize () {
                     this.model.vcard.on('change', this.render, this);
-                    this.model.on('change:correcting', this.render, this);
+                    this.model.on('change:correcting', this.onMessageCorrection, this);
                     this.model.on('change:message', this.render, this);
                     this.model.on('change:progress', this.renderFileUploadProgresBar, this);
                     this.model.on('change:type', this.render, this);
@@ -118,6 +118,14 @@
                     return this.el;
                 },
 
+                onMessageCorrection () {
+                    this.render();
+                    if (!this.model.get('correcting') && this.model.changed.message) {
+                        this.el.addEventListener('animationend', () => u.removeClass('onload', this.el));
+                        u.addClass('onload', this.el);
+                    }
+                },
+
                 replaceElement (msg) {
                     if (!_.isNil(this.el.parentElement)) {
                         this.el.parentElement.replaceChild(msg, this.el);