import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import ReactTooltip from 'react-tooltip'; import classnames from 'classnames'; import clipboardCopy from 'clipboard-copy'; import * as appPropTypes from './appPropTypes'; import { withRoomContext } from '../RoomContext'; import * as requestActions from '../redux/requestActions'; import { Appear } from './transitions'; import Me from './Me'; import ChatInput from './ChatInput'; import Peers from './Peers'; import Stats from './Stats'; import Notifications from './Notifications'; import NetworkThrottle from './NetworkThrottle'; class Room extends React.Component { render() { const { roomClient, room, me, amActiveSpeaker, onRoomLinkCopy } = this.props; const mediasoupClientVersion = room.mediasoupClientVersion === '__MEDIASOUP_CLIENT_VERSION__' ? 'dev' : room.mediasoupClientVersion; return (
{ }}> 值班专家{`>`} 在线聊天
{/* 当前房间状态信息 */} {/*

{room.state}

server:  {room.mediasoupVersion}

client:  {mediasoupClientVersion}

handler:  {room.mediasoupClientHandler}

*/} {/* 复制当前房间链接 */} {/*
*/}
{ me.audioOnly ? roomClient.disableAudioOnly() : roomClient.enableAudioOnly(); }} />
{ me.audioMuted ? roomClient.unmuteAudio() : roomClient.muteAudio(); }} />
roomClient.restartIce()} />
{/* 当前房间状态信息 */} {/* */}
); } componentDidMount() { const { roomClient } = this.props; roomClient.join(); } } Room.propTypes = { roomClient : PropTypes.any.isRequired, room : appPropTypes.Room.isRequired, me : appPropTypes.Me.isRequired, amActiveSpeaker : PropTypes.bool.isRequired, onRoomLinkCopy : PropTypes.func.isRequired }; const mapStateToProps = (state) => { return { room : state.room, me : state.me, amActiveSpeaker : state.me.id === state.room.activeSpeakerId }; }; const mapDispatchToProps = (dispatch) => { return { onRoomLinkCopy : () => { dispatch(requestActions.notify( { text : '房间链接已复制到剪贴板' })); } }; }; const RoomContainer = withRoomContext(connect( mapStateToProps, mapDispatchToProps )(Room)); export default RoomContainer;