Added Me,Participants in Spotlight and Passive Participants in ParticipantList

master
Stefan Otto 2018-10-30 12:04:46 +01:00
parent f5438de2f2
commit 9f74906592
3 changed files with 62 additions and 21 deletions

View File

@ -7,12 +7,27 @@ import PropTypes from 'prop-types';
import ListPeer from './ListPeer'; import ListPeer from './ListPeer';
import ListMe from './ListMe'; import ListMe from './ListMe';
const ParticipantList = ({ advancedMode, peers, setSelectedPeer, selectedPeerName }) => ( const ParticipantList =
({
advancedMode,
peers,
setSelectedPeer,
selectedPeerName,
spotlights
}) => (
<div data-component='ParticipantList'> <div data-component='ParticipantList'>
<ul className='list'> <ul className='list'>
<li className='list-header'>Me:</li>
<ListMe /> <ListMe />
</ul>
{peers.map((peer) => ( <br />
<ul className='list'>
<li className='list-header'>Participants in Spotlight:</li>
{peers.filter((peer) =>
{
return (spotlights.find((spotlight) =>
{ return (spotlight === peer.name); }));
}).map((peer) => (
<li <li
key={peer.name} key={peer.name}
className={classNames('list-item', { className={classNames('list-item', {
@ -24,15 +39,36 @@ const ParticipantList = ({ advancedMode, peers, setSelectedPeer, selectedPeerNam
</li> </li>
))} ))}
</ul> </ul>
<br />
<ul className='list'>
<li className='list-header'>Passive Participants:</li>
{peers.filter((peer) =>
{
return !(spotlights.find((spotlight) =>
{ return (spotlight === peer.name); }));
}).map((peer) => (
<li
key={peer.name}
className={classNames('list-item', {
selected : peer.name === selectedPeerName
})}
onClick={() => setSelectedPeer(peer.name)}
>
<ListPeer name={peer.name} advancedMode={advancedMode} />
</li>
))}
</ul>
</div> </div>
); );
ParticipantList.propTypes = ParticipantList.propTypes =
{ {
advancedMode : PropTypes.bool, advancedMode : PropTypes.bool,
peers : PropTypes.arrayOf(appPropTypes.Peer).isRequired, peers : PropTypes.arrayOf(appPropTypes.Peer).isRequired,
setSelectedPeer : PropTypes.func.isRequired, setSelectedPeer : PropTypes.func.isRequired,
selectedPeerName : PropTypes.string selectedPeerName : PropTypes.string,
spotlights : PropTypes.array.isRequired
}; };
const mapStateToProps = (state) => const mapStateToProps = (state) =>
@ -41,7 +77,8 @@ const mapStateToProps = (state) =>
return { return {
peers : peersArray, peers : peersArray,
selectedPeerName : state.room.selectedPeerName selectedPeerName : state.room.selectedPeerName,
spotlights : state.room.spotlights
}; };
}; };

View File

@ -6,6 +6,10 @@
0 4px 20px 0 rgba(0,0,0,0.19); 0 4px 20px 0 rgba(0,0,0,0.19);
background-color: #fff; background-color: #fff;
> .list-header {
padding: 0.5rem;
font-weight: bolder;
}
> .list-item { > .list-item {
padding: 0.5rem; padding: 0.5rem;
border-bottom: 1px solid #CBCBCB; border-bottom: 1px solid #CBCBCB;