import React from 'react'; import { connect } from 'react-redux'; import { makePeerConsumerSelector } from '../../Selectors'; import { withStyles } from '@material-ui/core/styles'; import PropTypes from 'prop-types'; import * as appPropTypes from '../../appPropTypes'; import { withRoomContext } from '../../../RoomContext'; import { useIntl } from 'react-intl'; import { green } from '@material-ui/core/colors'; import IconButton from '@material-ui/core/IconButton'; import Tooltip from '@material-ui/core/Tooltip'; import VideocamIcon from '@material-ui/icons/Videocam'; import VideocamOffIcon from '@material-ui/icons/VideocamOff'; import MicIcon from '@material-ui/icons/Mic'; import MicOffIcon from '@material-ui/icons/MicOff'; import VolumeUpIcon from '@material-ui/icons/VolumeUp'; import VolumeOffIcon from '@material-ui/icons/VolumeOff'; import ScreenIcon from '@material-ui/icons/ScreenShare'; import ScreenOffIcon from '@material-ui/icons/StopScreenShare'; import ExitIcon from '@material-ui/icons/ExitToApp'; import EmptyAvatar from '../../../images/avatar-empty.jpeg'; import PanIcon from '@material-ui/icons/PanTool'; import RecordVoiceOverIcon from '@material-ui/icons/RecordVoiceOver'; const styles = (theme) => ({ root : { width : '100%', overflow : 'hidden', cursor : 'auto', display : 'flex' }, avatar : { borderRadius : '50%', height : '2rem', marginTop : theme.spacing(0.5) }, peerInfo : { fontSize : '1rem', display : 'flex', paddingLeft : theme.spacing(1), flexGrow : 1, alignItems : 'center' }, indicators : { display : 'flex', padding : theme.spacing(1) }, buttons : { padding : theme.spacing(1) }, green : { color : 'rgba(0, 153, 0, 1)', marginLeft : theme.spacing(2) } }); const ListPeer = (props) => { const intl = useIntl(); const { roomClient, isModerator, spotlight, peer, micConsumer, webcamConsumer, screenConsumer, children, classes } = props; const webcamEnabled = ( Boolean(webcamConsumer) && !webcamConsumer.locallyPaused && !webcamConsumer.remotelyPaused ); const micEnabled = ( Boolean(micConsumer) && !micConsumer.locallyPaused && !micConsumer.remotelyPaused ); const screenVisible = ( Boolean(screenConsumer) && !screenConsumer.locallyPaused && !screenConsumer.remotelyPaused ); const picture = peer.picture || EmptyAvatar; return (