diff --git a/app/lib/components/Sidebar.jsx b/app/lib/components/Sidebar.jsx index e065576..28dab5f 100644 --- a/app/lib/components/Sidebar.jsx +++ b/app/lib/components/Sidebar.jsx @@ -1,96 +1,147 @@ -import React from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import classnames from 'classnames'; import * as appPropTypes from './appPropTypes'; import * as requestActions from '../redux/requestActions'; +import fscreen from 'fscreen'; -const Sidebar = ({ - toolbarsVisible, me, screenProducer, onLogin, onShareScreen, - onUnShareScreen, onNeedExtension, onLeaveMeeting -}) => +class Sidebar extends Component { - let screenState; - let screenTip; + state = { + fullscreen: false + }; - if (me.needExtension) + handleToggleFullscreen = () => { - screenState = 'need-extension'; - screenTip = 'Install screen sharing extension'; - } - else if (!me.canShareScreen) + if (fscreen.fullscreenElement) { + fscreen.exitFullscreen(); + } else { + fscreen.requestFullscreen(document.documentElement); + } + }; + + handleFullscreenChange = () => { + this.setState({ + fullscreen: fscreen.fullscreenElement !== null + }) + }; + + componentDidMount() { - screenState = 'unsupported'; - screenTip = 'Screen sharing not supported'; - } - else if (screenProducer) - { - screenState = 'on'; - screenTip = 'Stop screen sharing'; - } - else - { - screenState = 'off'; - screenTip = 'Start screen sharing'; + if (fscreen.fullscreenEnabled) + { + fscreen.addEventListener('fullscreenchange', this.handleFullscreenChange); + } } - return ( -