Select random peer if no peer has spoken yet
parent
c249472423
commit
cf0e313d58
|
|
@ -21,9 +21,27 @@ class Filmstrip extends Component
|
||||||
};
|
};
|
||||||
|
|
||||||
// Find the name of the peer which is currently speaking. This is either
|
// Find the name of the peer which is currently speaking. This is either
|
||||||
// the latest active speaker, or the manually selected peer.
|
// the latest active speaker, or the manually selected peer, or, if no
|
||||||
|
// person has spoken yet, the first peer in the list of peers.
|
||||||
getActivePeerName = () =>
|
getActivePeerName = () =>
|
||||||
this.props.selectedPeerName || this.state.lastSpeaker;
|
{
|
||||||
|
if (this.props.selectedPeerName)
|
||||||
|
{
|
||||||
|
return this.props.selectedPeerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.state.lastSpeaker)
|
||||||
|
{
|
||||||
|
return this.state.lastSpeaker;
|
||||||
|
}
|
||||||
|
|
||||||
|
const peerNames = Object.keys(this.props.peers);
|
||||||
|
|
||||||
|
if (peerNames.length > 0)
|
||||||
|
{
|
||||||
|
return peerNames[0];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
isSharingCamera = (peerName) => this.props.peers[peerName] &&
|
isSharingCamera = (peerName) => this.props.peers[peerName] &&
|
||||||
this.props.peers[peerName].consumers.some((consumer) =>
|
this.props.peers[peerName].consumers.some((consumer) =>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { connect } from 'react-redux';
|
||||||
|
import { Me } from '../appPropTypes';
|
||||||
|
|
||||||
|
const ListMe = ({ me }) =>
|
||||||
|
{
|
||||||
|
const picture = me.picture || 'resources/images/avatar-empty.jpeg';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<li className='list-item me'>
|
||||||
|
<div data-component='ListPeer'>
|
||||||
|
<img className='avatar' src={picture} />
|
||||||
|
|
||||||
|
<div className='peer-info'>
|
||||||
|
{me.displayName}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='indicators'>
|
||||||
|
{me.raisedHand && (
|
||||||
|
<div className='icon raise-hand on' />
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
ListMe.propTypes = {
|
||||||
|
me : Me.isRequired
|
||||||
|
};
|
||||||
|
|
||||||
|
const mapStateToProps = (state) => ({
|
||||||
|
me : state.me
|
||||||
|
});
|
||||||
|
|
||||||
|
export default connect(
|
||||||
|
mapStateToProps
|
||||||
|
)(ListMe);
|
||||||
|
|
@ -12,6 +12,10 @@
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.me {
|
||||||
|
cursor: auto;
|
||||||
|
}
|
||||||
|
|
||||||
&.selected {
|
&.selected {
|
||||||
border-bottom-color: #377EFF;
|
border-bottom-color: #377EFF;
|
||||||
}
|
}
|
||||||
|
|
@ -21,6 +25,8 @@
|
||||||
|
|
||||||
[data-component='ListPeer'] {
|
[data-component='ListPeer'] {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
> .indicators {
|
> .indicators {
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue