import React from 'react'; import { connect } from 'react-redux'; import * as appPropTypes from './appPropTypes'; import PeerView from './PeerView'; const Peer = (props) => { const { peer, micConsumer, webcamConsumer } = props; const micEnabled = ( Boolean(micConsumer) && !micConsumer.locallyPaused && !micConsumer.remotelyPaused ); const videoVisible = ( Boolean(webcamConsumer) && !webcamConsumer.locallyPaused && !webcamConsumer.remotelyPaused ); let videoProfile; if (webcamConsumer) videoProfile = webcamConsumer.profile; return (
{peer.raiseHandState ?
:null } {!micEnabled ?
:null } {!videoVisible ?
:null }
{videoVisible && !webcamConsumer.supported ?

incompatible video

:null }
); }; Peer.propTypes = { peer : appPropTypes.Peer.isRequired, micConsumer : appPropTypes.Consumer, webcamConsumer : appPropTypes.Consumer }; const mapStateToProps = (state, { name }) => { const peer = state.peers[name]; const consumersArray = peer.consumers .map((consumerId) => state.consumers[consumerId]); const micConsumer = consumersArray.find((consumer) => consumer.source === 'mic'); const webcamConsumer = consumersArray.find((consumer) => consumer.source === 'webcam'); return { peer, micConsumer, webcamConsumer }; }; const PeerContainer = connect(mapStateToProps)(Peer); export default PeerContainer;