diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js index d2ab9bc4..075ff948 100644 --- a/app/src/RoomClient.js +++ b/app/src/RoomClient.js @@ -2052,6 +2052,8 @@ export default class RoomClient lobbyPeerActions.addLobbyPeer(peerId)); store.dispatch( roomActions.setToolbarsVisible(true)); + + this._soundNotification(); store.dispatch(requestActions.notify( { @@ -2063,6 +2065,43 @@ export default class RoomClient break; } + + case 'parkedPeers': + { + const { lobbyPeers } = notification.data; + + if (lobbyPeers.length > 0) + { + lobbyPeers.forEach((peer) => + { + store.dispatch( + lobbyPeerActions.addLobbyPeer(peer.peerId)); + store.dispatch( + lobbyPeerActions.setLobbyPeerDisplayName( + peer.displayName, + peer.peerId + ) + ); + store.dispatch( + lobbyPeerActions.setLobbyPeerPicture(peer.picture)); + }); + + store.dispatch( + roomActions.setToolbarsVisible(true)); + + this._soundNotification(); + + store.dispatch(requestActions.notify( + { + text : intl.formatMessage({ + id : 'room.newLobbyPeer', + defaultMessage : 'New participant entered the lobby' + }) + })); + } + + break; + } case 'lobby:peerClosed': { diff --git a/server/lib/Room.js b/server/lib/Room.js index c95ed937..d15ae121 100644 --- a/server/lib/Room.js +++ b/server/lib/Room.js @@ -530,6 +530,17 @@ class Room extends EventEmitter peerId : peer.id, role : newRole }, true, true); + + // Got permission to promote peers, notify peer of + // peers in lobby + if (permissionsFromRoles.PROMOTE_PEER.includes(newRole)) + { + const lobbyPeers = this._lobby.peerList(); + + lobbyPeers.length > 0 && this._notification(peer.socket, 'parkedPeers', { + lobbyPeers + }); + } }); peer.on('lostRole', ({ oldRole }) =>