import React from 'react'; import { connect } from 'react-redux'; import ReactTooltip from 'react-tooltip'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import ClipboardButton from 'react-clipboard.js'; import * as appPropTypes from './appPropTypes'; import * as requestActions from '../redux/requestActions'; import { Appear } from './transitions'; import Me from './Me'; import Peers from './Peers'; import Notifications from './Notifications'; const Room = ( { room, me, amActiveSpeaker, onRoomLinkCopy, onSetAudioMode, onRestartIce }) => { return (

{room.state}

{ // If this is a 'Open in new window/tab' don't prevent // click default action. if ( event.ctrlKey || event.shiftKey || event.metaKey || // Middle click (IE > 9 and everyone else). (event.button && event.button === 1) ) { return; } event.preventDefault(); }} > invitation link
onSetAudioMode(!me.audioOnly)} />
onRestartIce()} />
); }; Room.propTypes = { room : appPropTypes.Room.isRequired, me : appPropTypes.Me.isRequired, amActiveSpeaker : PropTypes.bool.isRequired, onRoomLinkCopy : PropTypes.func.isRequired, onSetAudioMode : PropTypes.func.isRequired, onRestartIce : PropTypes.func.isRequired }; const mapStateToProps = (state) => { return { room : state.room, me : state.me, amActiveSpeaker : state.me.name === state.room.activeSpeakerName }; }; const mapDispatchToProps = (dispatch) => { return { onRoomLinkCopy : () => { dispatch(requestActions.notify( { text : 'Room link copied to the clipboard' })); }, onSetAudioMode : (enable) => { if (enable) dispatch(requestActions.enableAudioOnly()); else dispatch(requestActions.disableAudioOnly()); }, onRestartIce : () => { dispatch(requestActions.restartIce()); } }; }; const RoomContainer = connect( mapStateToProps, mapDispatchToProps )(Room); export default RoomContainer;