diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js
index 5086107..a936a14 100644
--- a/app/src/RoomClient.js
+++ b/app/src/RoomClient.js
@@ -1448,6 +1448,26 @@ export default class RoomClient
peerActions.setStopPeerVideoInProgress(peerId, false));
}
+ async stopPeerScreenSharing(peerId)
+ {
+ logger.debug('stopPeerScreenSharing() [peerId:"%s"]', peerId);
+
+ store.dispatch(
+ peerActions.setStopPeerScreenSharingInProgress(peerId, true));
+
+ try
+ {
+ await this.sendRequest('moderator:stopScreenSharing', { peerId });
+ }
+ catch (error)
+ {
+ logger.error('stopPeerScreenSharing() failed: %o', error);
+ }
+
+ store.dispatch(
+ peerActions.setStopPeerScreenSharingInProgress(peerId, false));
+ }
+
async muteAllPeers()
{
logger.debug('muteAllPeers()');
@@ -1488,6 +1508,26 @@ export default class RoomClient
roomActions.setStopAllVideoInProgress(false));
}
+ async stopAllPeerScreenSharing()
+ {
+ logger.debug('stopAllPeerScreenSharing()');
+
+ store.dispatch(
+ roomActions.setStopAllScreenSharingInProgress(true));
+
+ try
+ {
+ await this.sendRequest('moderator:stopAllScreenSharing');
+ }
+ catch (error)
+ {
+ logger.error('stopAllPeerScreenSharing() failed: %o', error);
+ }
+
+ store.dispatch(
+ roomActions.setStopAllScreenSharingInProgress(false));
+ }
+
async closeMeeting()
{
logger.debug('closeMeeting()');
@@ -2608,7 +2648,6 @@ export default class RoomClient
case 'moderator:stopVideo':
{
this.disableWebcam();
- this.disableScreenSharing();
store.dispatch(requestActions.notify(
{
@@ -2621,6 +2660,21 @@ export default class RoomClient
break;
}
+ case 'moderator:stopScreenSharing':
+ {
+ this.disableScreenSharing();
+
+ store.dispatch(requestActions.notify(
+ {
+ text : intl.formatMessage({
+ id : 'moderator.muteScreenSharingModerator',
+ defaultMessage : 'Moderator stopped your screen sharing'
+ })
+ }));
+
+ break;
+ }
+
case 'moderator:kick':
{
// Need some feedback
diff --git a/app/src/actions/peerActions.js b/app/src/actions/peerActions.js
index 5672b47..1a1e2d3 100644
--- a/app/src/actions/peerActions.js
+++ b/app/src/actions/peerActions.js
@@ -86,3 +86,9 @@ export const setStopPeerVideoInProgress = (peerId, flag) =>
type : 'STOP_PEER_VIDEO_IN_PROGRESS',
payload : { peerId, flag }
});
+
+export const setStopPeerScreenSharingInProgress = (peerId, flag) =>
+ ({
+ type : 'STOP_PEER_SCREEN_SHARING_IN_PROGRESS',
+ payload : { peerId, flag }
+ });
diff --git a/app/src/actions/roomActions.js b/app/src/actions/roomActions.js
index 5ae45e3..a73e18a 100644
--- a/app/src/actions/roomActions.js
+++ b/app/src/actions/roomActions.js
@@ -164,6 +164,12 @@ export const setStopAllVideoInProgress = (flag) =>
payload : { flag }
});
+export const setStopAllScreenSharingInProgress = (flag) =>
+ ({
+ type : 'STOP_ALL_SCREEN_SHARING_IN_PROGRESS',
+ payload : { flag }
+ });
+
export const setCloseMeetingInProgress = (flag) =>
({
type : 'CLOSE_MEETING_IN_PROGRESS',
diff --git a/app/src/components/MeetingDrawer/ParticipantList/ListModerator.js b/app/src/components/MeetingDrawer/ParticipantList/ListModerator.js
index c10506a..2fff283 100644
--- a/app/src/components/MeetingDrawer/ParticipantList/ListModerator.js
+++ b/app/src/components/MeetingDrawer/ParticipantList/ListModerator.js
@@ -63,6 +63,22 @@ const ListModerator = (props) =>
/>
+
+