@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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +10 -3
- package/dist/meeting/index.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +3 -3
- package/src/meeting/index.ts +10 -6
- package/test/unit/spec/meeting/index.js +33 -2
package/dist/webinar/index.js
CHANGED
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.
|
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.
|
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.
|
96
|
+
"version": "3.8.1-next.32"
|
97
97
|
}
|
package/src/meeting/index.ts
CHANGED
@@ -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
|
-
|
3068
|
-
|
3069
|
-
|
3070
|
-
|
3071
|
-
|
3072
|
-
|
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 =
|
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(
|