浏览代码

Fix quote preview not updating when changing quote (#299)

Fixes #281
Silly 8 年之前
父节点
当前提交
ea55980617
共有 3 个文件被更改,包括 10 次插入10 次删除
  1. 4 5
      src/directives/message_quote.ts
  2. 1 1
      src/partials/messenger.ts
  3. 5 4
      src/services/webclient.ts

+ 4 - 5
src/directives/message_quote.ts

@@ -30,13 +30,12 @@ export default [
             },
             controllerAs: 'ctrl',
             controller: [function() {
-                this.contact = webClientService.contacts.get(this.quote.identity);
-                this.text = this.quote.text;
+                this.contact = () => webClientService.contacts.get(this.quote.identity);
             }],
             template: `
-                <div class="message-quote-content" ng-style="{'border-color': ctrl.contact.color}">
-                    <span class="message-name" ng-style="{'color': ctrl.contact.color}">{{ ctrl.contact.displayName }}</span>
-                    <span class="message-quote" ng-bind-html="ctrl.text | escapeHtml | markify | emojify | linkify | nlToBr"></span>
+                <div class="message-quote-content" ng-style="{'border-color': ctrl.contact().color}">
+                    <span class="message-name" ng-style="{'color': ctrl.contact().color}">{{ ctrl.contact().displayName }}</span>
+                    <span class="message-quote" ng-bind-html="ctrl.quote.text | escapeHtml | markify | emojify | linkify | nlToBr"></span>
                 </div>
             `,
         };

+ 1 - 1
src/partials/messenger.ts

@@ -386,7 +386,7 @@ class ConversationController {
     }
 
     public cancelQuoting(): void {
-        // clear curren quote
+        // Clear current quote
         this.webClientService.setQuote(this.receiver);
     }
 

+ 5 - 4
src/services/webclient.ts

@@ -1253,9 +1253,10 @@ export class WebClientService {
      * Set or remove (if message is null) a quoted message model.
      */
     public setQuote(receiver: threema.Receiver, message: threema.Message = null): void {
-        if (message === null) {
-            this.drafts.removeQuote(receiver);
-        } else {
+        // Remove current quote
+        this.drafts.removeQuote(receiver);
+
+        if (message !== null) {
             let quoteText;
             switch (message.type) {
                 case 'text':
@@ -1276,7 +1277,7 @@ export class WebClientService {
                 this.drafts.setQuote(receiver, {
                     identity: message.isOutbox ? this.me.id : message.partnerId,
                     text: quoteText,
-                });
+                } as threema.Quote);
             }
         }
     }