/* @flow */ import React, { Component } from 'react'; import { connect as reactReduxConnect } from 'react-redux'; import { connect, disconnect } from '../../base/connection'; import { DialogContainer } from '../../base/dialog'; import { Watermarks } from '../../base/react'; import { OverlayContainer } from '../../overlay'; import { Toolbox } from '../../toolbox'; import { HideNotificationBarStyle } from '../../unsupported-browser'; import { VideoStatusLabel } from '../../video-status-label'; declare var $: Function; declare var APP: Object; /** * The conference page of the Web application. */ class Conference extends Component { /** * Conference component's property types. * * @static */ static propTypes = { dispatch: React.PropTypes.func } /** * Until we don't rewrite UI using react components * we use UI.start from old app. Also method translates * component right after it has been mounted. * * @inheritdoc */ componentDidMount() { APP.UI.start(); APP.UI.registerListeners(); APP.UI.bindEvents(); this.props.dispatch(connect()); } /** * Disconnect from the conference when component will be * unmounted. * * @inheritdoc */ componentWillUnmount() { APP.UI.unregisterListeners(); APP.UI.unbindEvents(); APP.conference.isJoined() && this.props.dispatch(disconnect()); } /** * Implements React's {@link Component#render()}. * * @inheritdoc * @returns {ReactElement} */ render() { return (
); } } export default reactReduxConnect()(Conference);