@webex/plugin-meetings 3.8.1-next.31 → 3.8.1-next.32

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.
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.1-next.31"
461
+ version: "3.8.1-next.32"
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.1-next.31",
46
+ "@webex/plugin-meetings": "3.8.1-next.32",
47
47
  "@webex/plugin-rooms": "3.8.1-next.7",
48
48
  "@webex/test-helper-chai": "3.8.1-next.10",
49
49
  "@webex/test-helper-mocha": "3.8.1-next.10",
@@ -71,7 +71,7 @@
71
71
  "@webex/internal-plugin-metrics": "3.8.1-next.10",
72
72
  "@webex/internal-plugin-support": "3.8.1-next.10",
73
73
  "@webex/internal-plugin-user": "3.8.1-next.10",
74
- "@webex/internal-plugin-voicea": "3.8.1-next.31",
74
+ "@webex/internal-plugin-voicea": "3.8.1-next.32",
75
75
  "@webex/media-helpers": "3.8.1-next.14",
76
76
  "@webex/plugin-people": "3.8.1-next.10",
77
77
  "@webex/plugin-rooms": "3.8.1-next.7",
@@ -93,5 +93,5 @@
93
93
  "//": [
94
94
  "TODO: upgrade jwt-decode when moving to node 18"
95
95
  ],
96
- "version": "3.8.1-next.31"
96
+ "version": "3.8.1-next.32"
97
97
  }
@@ -3064,12 +3064,16 @@ export default class Meeting extends StatelessWebexPlugin {
3064
3064
  // There is no concept of local/remote share for whiteboard
3065
3065
  // It does not matter who requested to share the whiteboard, everyone gets the same view
3066
3066
  else if (whiteboardShare.disposition === FLOOR_ACTION.GRANTED) {
3067
- // WHITEBOARD - sharing whiteboard
3068
- // Webinar attendee should receive whiteboard as remote share
3069
- newShareStatus =
3070
- this.locusInfo?.info?.isWebinar && this.webinar?.selfIsAttendee
3071
- ? SHARE_STATUS.REMOTE_SHARE_ACTIVE
3072
- : SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
3067
+ if (this.locusInfo?.info?.isWebinar && this.webinar?.selfIsAttendee) {
3068
+ // WHITEBOARD - sharing whiteboard
3069
+ // Webinar attendee should receive whiteboard as remote share
3070
+ newShareStatus = SHARE_STATUS.REMOTE_SHARE_ACTIVE;
3071
+ } else if (this.guest) {
3072
+ // If user is a guest to a meeting, they should receive whiteboard as remote share
3073
+ newShareStatus = SHARE_STATUS.REMOTE_SHARE_ACTIVE;
3074
+ } else {
3075
+ newShareStatus = SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
3076
+ }
3073
3077
  }
3074
3078
  // or if content share is either released or null and whiteboard share is either released or null, no one is sharing
3075
3079
  else if (
@@ -12433,7 +12433,7 @@ describe('plugin-meetings', () => {
12433
12433
  activeSharingId.whiteboard = beneficiaryId;
12434
12434
 
12435
12435
  eventTrigger.share.push(
12436
- meeting.webinar.selfIsAttendee
12436
+ meeting.webinar.selfIsAttendee || meeting.guest
12437
12437
  ? {
12438
12438
  eventName: EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE,
12439
12439
  functionName: 'remoteShare',
@@ -12452,7 +12452,8 @@ describe('plugin-meetings', () => {
12452
12452
  }
12453
12453
  );
12454
12454
 
12455
- shareStatus = meeting.webinar.selfIsAttendee
12455
+ shareStatus =
12456
+ meeting.webinar.selfIsAttendee || meeting.guest
12456
12457
  ? SHARE_STATUS.REMOTE_SHARE_ACTIVE
12457
12458
  : SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
12458
12459
  }
@@ -12670,6 +12671,36 @@ describe('plugin-meetings', () => {
12670
12671
  });
12671
12672
  });
12672
12673
 
12674
+ describe('Whiteboard Share - User is guest', () => {
12675
+ it('User receives a remote share instead of whiteboard share', () => {
12676
+ // Set the guest flag
12677
+ meeting.guest = true;
12678
+
12679
+ // Step 1: Start sharing whiteboard A
12680
+ const data1 = generateData(
12681
+ blankPayload, // Initial payload
12682
+ true, // isGranting: Granting share
12683
+ false, // isContent: Whiteboard (not content)
12684
+ USER_IDS.REMOTE_A, // Beneficiary ID: Remote user A
12685
+ RESOURCE_URLS.WHITEBOARD_A // Resource URL: Whiteboard A
12686
+ );
12687
+
12688
+ // Step 2: Stop sharing whiteboard A
12689
+ const data2 = generateData(
12690
+ data1.payload, // Updated payload from Step 1
12691
+ false, // isGranting: Stopping share
12692
+ false, // isContent: Whiteboard
12693
+ USER_IDS.REMOTE_A // Beneficiary ID: Remote user A
12694
+ );
12695
+
12696
+ // Validate the payload changes and status updates
12697
+ payloadTestHelper([data1]);
12698
+
12699
+ // Specific assertions for guest
12700
+ assert.equal(meeting.shareStatus, SHARE_STATUS.REMOTE_SHARE_ACTIVE);
12701
+ });
12702
+ });
12703
+
12673
12704
  describe('Whiteboard A --> Whiteboard B', () => {
12674
12705
  it('Scenario #1: you share both whiteboards', () => {
12675
12706
  const data1 = generateData(