@webex/plugin-meetings 3.8.0-next.74 → 3.8.0-next.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -284,6 +284,7 @@ export declare const EVENT_TRIGGERS: {
284
284
  MEETING_STOPPED_RECEIVING_TRANSCRIPTION: string;
285
285
  MEETING_MANUAL_CAPTION_UPDATED: string;
286
286
  MEETING_CAPTION_RECEIVED: string;
287
+ MEETING_PARTICIPANT_REASON_CHANGED: string;
287
288
  };
288
289
  export declare const EVENT_TYPES: {
289
290
  SELF: string;
@@ -609,6 +610,7 @@ export declare const LOCUSINFO: {
609
610
  MEDIA_INACTIVITY: string;
610
611
  LINKS_SERVICES: string;
611
612
  LINKS_RESOURCES: string;
613
+ PARTICIPANT_REASON_CHANGED: string;
612
614
  };
613
615
  };
614
616
  export declare const LOCUSEVENT: {
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.0-next.74"
461
+ version: "3.8.0-next.75"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.0-next.74",
46
+ "@webex/plugin-meetings": "3.8.0-next.75",
47
47
  "@webex/plugin-rooms": "3.8.0-next.25",
48
48
  "@webex/test-helper-chai": "3.8.0-next.20",
49
49
  "@webex/test-helper-mocha": "3.8.0-next.20",
@@ -71,7 +71,7 @@
71
71
  "@webex/internal-plugin-metrics": "3.8.0-next.20",
72
72
  "@webex/internal-plugin-support": "3.8.0-next.25",
73
73
  "@webex/internal-plugin-user": "3.8.0-next.20",
74
- "@webex/internal-plugin-voicea": "3.8.0-next.74",
74
+ "@webex/internal-plugin-voicea": "3.8.0-next.75",
75
75
  "@webex/media-helpers": "3.8.0-next.24",
76
76
  "@webex/plugin-people": "3.8.0-next.22",
77
77
  "@webex/plugin-rooms": "3.8.0-next.25",
@@ -93,5 +93,5 @@
93
93
  "//": [
94
94
  "TODO: upgrade jwt-decode when moving to node 18"
95
95
  ],
96
- "version": "3.8.0-next.74"
96
+ "version": "3.8.0-next.75"
97
97
  }
package/src/constants.ts CHANGED
@@ -381,6 +381,7 @@ export const EVENT_TRIGGERS = {
381
381
  MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
382
382
  MEETING_MANUAL_CAPTION_UPDATED: 'meeting:manualCaptionControl:updated',
383
383
  MEETING_CAPTION_RECEIVED: 'meeting:caption-received',
384
+ MEETING_PARTICIPANT_REASON_CHANGED: 'meeting:participant-reason-changed',
384
385
  };
385
386
 
386
387
  export const EVENT_TYPES = {
@@ -743,6 +744,7 @@ export const LOCUSINFO = {
743
744
  MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
744
745
  LINKS_SERVICES: 'LINKS_SERVICES',
745
746
  LINKS_RESOURCES: 'LINKS_RESOURCES',
747
+ PARTICIPANT_REASON_CHANGED: 'PARTICIPANT_REASON_CHANGED',
746
748
  },
747
749
  };
748
750
 
@@ -1,4 +1,4 @@
1
- import {isEqual, assignWith, cloneDeep, isEmpty} from 'lodash';
1
+ import {isEqual, assignWith, cloneDeep, isEmpty, forEach} from 'lodash';
2
2
 
3
3
  import LoggerProxy from '../common/logs/logger-proxy';
4
4
  import EventsScope from '../common/events/events-scope';
@@ -784,6 +784,23 @@ export default class LocusInfo extends EventsScope {
784
784
  isReplace,
785
785
  }
786
786
  );
787
+
788
+ if (participants && Array.isArray(participants) && participants.length > 0) {
789
+ for (const participant of participants) {
790
+ if (participant && participant?.reason === 'FAILURE') {
791
+ this.emitScoped(
792
+ {
793
+ file: 'locus-info',
794
+ function: 'updateParticipants',
795
+ },
796
+ LOCUSINFO.EVENTS.PARTICIPANT_REASON_CHANGED,
797
+ {
798
+ displayName: participant?.person?.primaryDisplayString,
799
+ }
800
+ );
801
+ }
802
+ }
803
+ }
787
804
  }
788
805
 
789
806
  /**
@@ -2637,6 +2637,19 @@ export default class Meeting extends StatelessWebexPlugin {
2637
2637
  this.locusInfo.on(EVENTS.LOCUS_INFO_UPDATE_PARTICIPANTS, (payload) => {
2638
2638
  this.members.locusParticipantsUpdate(payload);
2639
2639
  });
2640
+ this.locusInfo.on(LOCUSINFO.EVENTS.PARTICIPANT_REASON_CHANGED, (payload) => {
2641
+ Trigger.trigger(
2642
+ this,
2643
+ {
2644
+ file: 'meeting/index',
2645
+ function: 'setUpLocusParticipantsListener',
2646
+ },
2647
+ EVENT_TRIGGERS.MEETING_PARTICIPANT_REASON_CHANGED,
2648
+ {
2649
+ payload,
2650
+ }
2651
+ );
2652
+ });
2640
2653
  }
2641
2654
 
2642
2655
  /**
@@ -825,6 +825,32 @@ describe('plugin-meetings', () => {
825
825
 
826
826
  assert.isTrue(locusInfo.deltaParticipants.length === 0);
827
827
  });
828
+
829
+ it('should call with participant display name', () => {
830
+ const failureParticipant = [
831
+ {
832
+ person: {
833
+ id: 5678,
834
+ primaryDisplayString: 'Test User',
835
+ },
836
+ reason: 'FAILURE',
837
+ },
838
+ ];
839
+
840
+ locusInfo.emitScoped = sinon.stub();
841
+ locusInfo.updateParticipants(failureParticipant);
842
+ assert.calledWith(
843
+ locusInfo.emitScoped,
844
+ {
845
+ file: 'locus-info',
846
+ function: 'updateParticipants',
847
+ },
848
+ LOCUSINFO.EVENTS.PARTICIPANT_REASON_CHANGED,
849
+ {
850
+ displayName: 'Test User',
851
+ }
852
+ );
853
+ })
828
854
  });
829
855
 
830
856
  describe('#updateSelf', () => {