Sort participant list alphabetically
parent
038aeaff67
commit
0d4b1c3916
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import {
|
import {
|
||||||
passivePeersSelector,
|
passivePeersSelector,
|
||||||
spotlightPeersSelector
|
spotlightSortedPeersSelector
|
||||||
} from '../../Selectors';
|
} from '../../Selectors';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { withStyles } from '@material-ui/core/styles';
|
import { withStyles } from '@material-ui/core/styles';
|
||||||
|
|
@ -114,16 +114,20 @@ class ParticipantList extends React.PureComponent
|
||||||
defaultMessage='Participants in Spotlight'
|
defaultMessage='Participants in Spotlight'
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
{ spotlightPeers.map((peerId) => (
|
{ spotlightPeers.map((peer) => (
|
||||||
<li
|
<li
|
||||||
key={peerId}
|
key={peer.id}
|
||||||
className={classNames(classes.listItem, {
|
className={classNames(classes.listItem, {
|
||||||
selected : peerId === selectedPeerId
|
selected : peer.id === selectedPeerId
|
||||||
})}
|
})}
|
||||||
onClick={() => roomClient.setSelectedPeer(peerId)}
|
onClick={() => roomClient.setSelectedPeer(peer.id)}
|
||||||
>
|
>
|
||||||
<ListPeer id={peerId} advancedMode={advancedMode} isModerator={isModerator}>
|
<ListPeer
|
||||||
<Volume small id={peerId} />
|
id={peer.id}
|
||||||
|
advancedMode={advancedMode}
|
||||||
|
isModerator={isModerator}
|
||||||
|
>
|
||||||
|
<Volume small id={peer.id} />
|
||||||
</ListPeer>
|
</ListPeer>
|
||||||
</li>
|
</li>
|
||||||
))}
|
))}
|
||||||
|
|
@ -135,16 +139,16 @@ class ParticipantList extends React.PureComponent
|
||||||
defaultMessage='Passive Participants'
|
defaultMessage='Passive Participants'
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
{ passivePeers.map((peerId) => (
|
{ passivePeers.map((peer) => (
|
||||||
<li
|
<li
|
||||||
key={peerId}
|
key={peer.id}
|
||||||
className={classNames(classes.listItem, {
|
className={classNames(classes.listItem, {
|
||||||
selected : peerId === selectedPeerId
|
selected : peer.id === selectedPeerId
|
||||||
})}
|
})}
|
||||||
onClick={() => roomClient.setSelectedPeer(peerId)}
|
onClick={() => roomClient.setSelectedPeer(peer.id)}
|
||||||
>
|
>
|
||||||
<ListPeer
|
<ListPeer
|
||||||
id={peerId}
|
id={peer.id}
|
||||||
advancedMode={advancedMode}
|
advancedMode={advancedMode}
|
||||||
isModerator={isModerator}
|
isModerator={isModerator}
|
||||||
/>
|
/>
|
||||||
|
|
@ -174,7 +178,7 @@ const mapStateToProps = (state) =>
|
||||||
state.me.roles.includes(userRoles.ADMIN),
|
state.me.roles.includes(userRoles.ADMIN),
|
||||||
passivePeers : passivePeersSelector(state),
|
passivePeers : passivePeersSelector(state),
|
||||||
selectedPeerId : state.room.selectedPeerId,
|
selectedPeerId : state.room.selectedPeerId,
|
||||||
spotlightPeers : spotlightPeersSelector(state)
|
spotlightPeers : spotlightSortedPeersSelector(state)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,10 @@ const peersKeySelector = createSelector(
|
||||||
peersSelector,
|
peersSelector,
|
||||||
(peers) => Object.keys(peers)
|
(peers) => Object.keys(peers)
|
||||||
);
|
);
|
||||||
|
const peersValueSelector = createSelector(
|
||||||
|
peersSelector,
|
||||||
|
(peers) => Object.values(peers)
|
||||||
|
);
|
||||||
|
|
||||||
export const lobbyPeersKeySelector = createSelector(
|
export const lobbyPeersKeySelector = createSelector(
|
||||||
lobbyPeersSelector,
|
lobbyPeersSelector,
|
||||||
|
|
@ -74,15 +78,23 @@ export const spotlightPeersSelector = createSelector(
|
||||||
(spotlights, peers) => peers.filter((peerId) => spotlights.includes(peerId))
|
(spotlights, peers) => peers.filter((peerId) => spotlights.includes(peerId))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const spotlightSortedPeersSelector = createSelector(
|
||||||
|
spotlightsSelector,
|
||||||
|
peersValueSelector,
|
||||||
|
(spotlights, peers) => peers.filter((peer) => spotlights.includes(peer.id))
|
||||||
|
.sort((a, b) => a.displayName.localeCompare(b.displayName))
|
||||||
|
);
|
||||||
|
|
||||||
export const peersLengthSelector = createSelector(
|
export const peersLengthSelector = createSelector(
|
||||||
peersSelector,
|
peersSelector,
|
||||||
(peers) => Object.values(peers).length
|
(peers) => Object.values(peers).length
|
||||||
);
|
);
|
||||||
|
|
||||||
export const passivePeersSelector = createSelector(
|
export const passivePeersSelector = createSelector(
|
||||||
peersKeySelector,
|
peersValueSelector,
|
||||||
spotlightsSelector,
|
spotlightsSelector,
|
||||||
(peers, spotlights) => peers.filter((peerId) => !spotlights.includes(peerId))
|
(peers, spotlights) => peers.filter((peer) => !spotlights.includes(peer.id))
|
||||||
|
.sort((a, b) => a.displayName.localeCompare(b.displayName))
|
||||||
);
|
);
|
||||||
|
|
||||||
export const videoBoxesSelector = createSelector(
|
export const videoBoxesSelector = createSelector(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue