Procházet zdrojové kódy

Merge pull request #580 from jitsi/status-message-clear

Fire status message update when there is no status message.
master
virtuacoplenny před 7 roky
rodič
revize
b7807fc160
1 změnil soubory, kde provedl 18 přidání a 3 odebrání
  1. 18
    3
      modules/xmpp/ChatRoom.js

+ 18
- 3
modules/xmpp/ChatRoom.js Zobrazit soubor

@@ -389,7 +389,14 @@ export default class ChatRoom extends Listenable {
389 389
         const member = {};
390 390
 
391 391
         member.show = $(pres).find('>show').text();
392
-        member.status = $(pres).find('>status').text();
392
+        const $statusNode = $(pres).find('>status');
393
+        const hasStatus = $statusNode.length;
394
+
395
+        if (hasStatus) {
396
+            member.status = $statusNode.text();
397
+        }
398
+        let hasStatusUpdate = false;
399
+
393 400
         const mucUserItem
394 401
             = $(pres).find(
395 402
                 '>x[xmlns="http://jabber.org/protocol/muc#user"]>item');
@@ -466,6 +473,8 @@ export default class ChatRoom extends Listenable {
466 473
                     XMPPEvents.MUC_MEMBER_JOINED,
467 474
                     from, member.nick, member.role, member.isHiddenDomain);
468 475
             }
476
+
477
+            hasStatusUpdate = member.status !== undefined;
469 478
         } else {
470 479
             // Presence update for existing participant
471 480
             // Watch role change:
@@ -495,6 +504,12 @@ export default class ChatRoom extends Listenable {
495 504
             if (member.displayName) {
496 505
                 memberOfThis.displayName = member.displayName;
497 506
             }
507
+
508
+            // update stored status message to be able to detect changes
509
+            if (memberOfThis.status !== member.status) {
510
+                hasStatusUpdate = true;
511
+                memberOfThis.status = member.status;
512
+            }
498 513
         }
499 514
 
500 515
         // after we had fired member or room joined events, lets fire events
@@ -541,8 +556,8 @@ export default class ChatRoom extends Listenable {
541 556
             }
542 557
         }
543 558
 
544
-        // Trigger status message update
545
-        if (member.status) {
559
+        // Trigger status message update if necessary
560
+        if (hasStatusUpdate) {
546 561
             this.eventEmitter.emit(
547 562
                 XMPPEvents.PRESENCE_STATUS,
548 563
                 from,

Načítá se…
Zrušit
Uložit