diff --git a/bigbluebutton-html5/imports/ui/components/multiple-video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/multiple-video-provider/component.jsx index fa97a44d002feb00348896c62e50d8fd37bf6c9a..5a57a45bc855aa8b6526014445d77e3a1fe740e4 100644 --- a/bigbluebutton-html5/imports/ui/components/multiple-video-provider/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/multiple-video-provider/component.jsx @@ -132,7 +132,7 @@ class VideoProvider extends Component { const usersToConnect = usersSharingIds.filter(id => !usersConnected.includes(id)); const usersToDisconnect = usersConnected.filter(id => !usersSharingIds.includes(id)); - usersToConnect.forEach(cameraId => { + usersToConnect.forEach((cameraId) => { this.createWebRTCPeer(cameraId, VideoService.isLocalStream(cameraId)); }); usersToDisconnect.forEach(cameraId => this.stopWebRTCPeer(cameraId)); @@ -204,7 +204,7 @@ class VideoProvider extends Component { onWsClose() { logger.debug({ - logCode: 'video_provider_onwsclose' + logCode: 'video_provider_onwsclose', }, 'Multiple video provider websocket connection closed.'); clearInterval(this.pingInterval); @@ -218,7 +218,7 @@ class VideoProvider extends Component { onWsOpen() { logger.debug({ - logCode: 'video_provider_onwsopen' + logCode: 'video_provider_onwsopen', }, 'Multiple video provider websocket connection opened.'); // Resend queued messages that happened when socket was not connected @@ -243,7 +243,7 @@ class VideoProvider extends Component { pauseViewers() { logger.debug({ - logCode: 'video_provider_pause_viewers' + logCode: 'video_provider_pause_viewers', }, 'Calling pause in viewer streams'); Object.keys(this.webRtcPeers).forEach((cameraId) => { @@ -257,12 +257,12 @@ class VideoProvider extends Component { unpauseViewers() { logger.debug({ - logCode: 'video_provider_unpause_viewers' + logCode: 'video_provider_unpause_viewers', }, 'Calling un-pause in viewer streams'); Object.keys(this.webRtcPeers).forEach((cameraId) => { const peer = this.webRtcPeers[cameraId]; - const peerStarted = peer && peer.started + const peerStarted = peer && peer.started; if (!VideoService.isLocalStream(cameraId) && peerStarted) { this.sendPauseStream(cameraId, 'viewer', false); } @@ -331,7 +331,7 @@ class VideoProvider extends Component { }); } else { logger.warn({ - logCode: 'video_provider_startresponse_no_peer' + logCode: 'video_provider_startresponse_no_peer', }, `SFU start response for ${cameraId} arrived after the peer was discarded, ignore it.`); } } @@ -363,7 +363,7 @@ class VideoProvider extends Component { } } else { logger.warn({ - logCode: 'video_provider_addicecandidate_no_peer' + logCode: 'video_provider_addicecandidate_no_peer', }, `SFU ICE candidate for ${cameraId} arrived after the peer was discarded, ignore it.`); } } @@ -375,7 +375,7 @@ class VideoProvider extends Component { // we stop listening to prevent this from being treated as an error const peer = this.webRtcPeers[cameraId]; if (peer && peer.peerConnection) { - const conn = peer.peerConnection + const conn = peer.peerConnection; conn.oniceconnectionstatechange = null; } @@ -386,7 +386,7 @@ class VideoProvider extends Component { const role = isLocal ? 'share' : 'viewer'; logger.info({ - logCode: 'video_provider_stopping_webcam_sfu' + logCode: 'video_provider_stopping_webcam_sfu', }, `Sending stop request to SFU. Camera: ${cameraId}, role ${role} and flag restarting ${restarting}`); this.sendMessage({ id: 'stop', @@ -413,7 +413,7 @@ class VideoProvider extends Component { const peer = this.webRtcPeers[cameraId]; if (peer) { logger.info({ - logCode: 'video_provider_destroywebrtcpeer' + logCode: 'video_provider_destroywebrtcpeer', }, `Disposing WebRTC peer ${cameraId}`); if (typeof peer.dispose === 'function') { peer.dispose(); @@ -421,7 +421,7 @@ class VideoProvider extends Component { delete this.webRtcPeers[cameraId]; } else { logger.warn({ - logCode: 'video_provider_destroywebrtcpeer_no_peer' + logCode: 'video_provider_destroywebrtcpeer_no_peer', }, `Peer ${cameraId} was already disposed (glare), ignore it.`); } } @@ -628,7 +628,7 @@ class VideoProvider extends Component { }, `Camera has a new reconnect timer of ${newReconnectTimer} ms for ${cameraId}`); this.restartTimeout[cameraId] = setTimeout( this._getWebRTCStartTimeout(cameraId, isLocal), - this.restartTimer[cameraId] + this.restartTimer[cameraId], ); } @@ -670,19 +670,18 @@ class VideoProvider extends Component { VideoService.notify(intl.formatMessage(intlClientErrors.iceConnectionStateError)); } }; - } else { - return () => { - logger.error({ - logCode: 'video_provider_ice_connection_failed_state', - extraInfo: { - cameraId, - iceConnectionState: undefined, - }, - }, `Missing peer at ICE connection state transition for ${cameraId}`); - - this.stopWebRTCPeer(cameraId); - }; } + return () => { + logger.error({ + logCode: 'video_provider_ice_connection_failed_state', + extraInfo: { + cameraId, + iceConnectionState: undefined, + }, + }, `Missing peer at ICE connection state transition for ${cameraId}`); + + this.stopWebRTCPeer(cameraId); + }; } attachVideoStream(cameraId) { @@ -808,7 +807,7 @@ class VideoProvider extends Component { unshareWebcam() { logger.info({ - logCode: 'video_provider_unsharewebcam' + logCode: 'video_provider_unsharewebcam', }, 'Sending unshare webcam notification to meteor'); VideoService.sendUserUnshareWebcam(this.info.userId); VideoService.exitedVideo(); diff --git a/bigbluebutton-html5/imports/ui/components/multiple-video-provider/service.js b/bigbluebutton-html5/imports/ui/components/multiple-video-provider/service.js index 1eb66f2b26476d77da3fa9a439c0f228d75d05c4..8f8b201c602766d5b2dd97377e56f442684eacc5 100644 --- a/bigbluebutton-html5/imports/ui/components/multiple-video-provider/service.js +++ b/bigbluebutton-html5/imports/ui/components/multiple-video-provider/service.js @@ -96,12 +96,16 @@ class VideoService { getAllWebcamUsers() { const localUser = Users.findOne( { userId: Auth.userID }, - { fields: { name: 1, userId: 1, role: 1, locked: 1 } } + { + fields: { + name: 1, userId: 1, role: 1, locked: 1, + }, + }, ); const videoUsers = VideoStreams.find( { meetingId: Auth.meetingID }, - { fields: { userId: 1 } } + { fields: { userId: 1 } }, ).fetch().map(u => u.userId); let users = Users.find({ @@ -111,7 +115,11 @@ class VideoService { { userId: { $ne: localUser.userId } }, { userId: { $in: videoUsers } }, ], - }, { fields: { name: 1, userId: 1, role: 1, locked: 1, } }).fetch(); + }, { + fields: { + name: 1, userId: 1, role: 1, locked: 1, + }, + }).fetch(); if (this.isSharing || this.isConnected) { users.push(localUser); @@ -125,9 +133,7 @@ class VideoService { users = users.filter(isModerator); } - return users.map(u => { - return { userId: u.userId, name: u.name }; - }).sort(UserListService.sortUsersByName); + return users.map(u => ({ userId: u.userId, name: u.name })).sort(UserListService.sortUsersByName); } hasVideoStream() { @@ -164,7 +170,7 @@ class VideoService { meetingId: Auth.meetingID, sessionToken: Auth.sessionToken, voiceBridge, - } + }; } userIsLocked() { @@ -248,7 +254,7 @@ class VideoService { const viewParticipantsWebcams = Settings.dataSaving.viewParticipantsWebcams; return isLocked || isConnecting || !viewParticipantsWebcams; - }; + } } const videoService = new VideoService(); @@ -277,5 +283,3 @@ export default { processIceQueue: (peer, cameraId) => videoService.processIceQueue(peer, cameraId), notify: message => notify(message, 'error', 'video'), }; - - diff --git a/bigbluebutton-html5/imports/ui/components/multiple-video-provider/video-list/video-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/multiple-video-provider/video-list/video-list-item/component.jsx index 1074739518828a64141293f11598620b692ab936..31d3b16e738c5e19a629f17fb6ea8320be7c7c70 100644 --- a/bigbluebutton-html5/imports/ui/components/multiple-video-provider/video-list/video-list-item/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/multiple-video-provider/video-list/video-list-item/component.jsx @@ -180,8 +180,7 @@ class VideoListItem extends Component { <div className={styles.info}> {enableVideoMenu && availableActions.length >= 3 ? ( - <Dropdown className={isFirefox ? styles.dropdownFireFox : styles.dropdown} - > + <Dropdown className={isFirefox ? styles.dropdownFireFox : styles.dropdown}> <DropdownTrigger className={styles.dropdownTrigger}> <span>{user.name}</span> </DropdownTrigger>