Web Filmstrip & LargeVideo React Components

We've had Filmstrip & LargeVideo React Components on mobile/React Native
from the start. We didn't have them on Web (because the rewrite in React
is not complete yet). However, that led to differences in the React
Component Conference on Web and mobile. In an effort to get closer to
merging the React Component Conference on Web and mobile, introduce the
React Components Filmstrip & LargeVideo on Web even if a minimal
render-only form at this time.
This commit is contained in:
Lyubo Marinov
2017-05-24 12:01:46 -05:00
parent 66ababc6c8
commit b7c4ebba84
7 changed files with 173 additions and 104 deletions

View File

@@ -1,3 +1,5 @@
/* @flow */
import React, { Component } from 'react';
import { connect } from 'react-redux';
@@ -6,7 +8,8 @@ import { ParticipantView } from '../../base/participants';
import { styles } from './styles';
/**
* Large video React component.
* Implements a React {@link Component} which represents the large video (a.k.a.
* the conference participant who is on the local stage) on mobile/React Native.
*
* @extends Component
*/

View File

@@ -0,0 +1,62 @@
/* @flow */
import React, { Component } from 'react';
import { Watermarks } from '../../base/react';
import { VideoStatusLabel } from '../../video-status-label';
/**
* Implements a React {@link Component} which represents the large video (a.k.a.
* the conference participant who is on the local stage) on Web/React.
*
* @extends Component
*/
export default class LargeVideo extends Component {
/**
* Implements React's {@link Component#render()}.
*
* @inheritdoc
* @returns {ReactElement}
*/
render() {
return (
<div
className = 'videocontainer'
id = 'largeVideoContainer'>
<div id = 'sharedVideo'>
<div id = 'sharedVideoIFrame' />
</div>
<div id = 'etherpad' />
<Watermarks />
<div id = 'dominantSpeaker'>
<div className = 'dynamic-shadow' />
<img
id = 'dominantSpeakerAvatar'
src = '' />
</div>
<span id = 'remoteConnectionMessage' />
<div id = 'largeVideoWrapper'>
<video
autoPlay = { true }
id = 'largeVideo'
muted = { true } />
</div>
<span id = 'localConnectionMessage' />
<VideoStatusLabel />
<span
className = 'video-state-indicator centeredVideoLabel'
id = 'recordingLabel'>
<span id = 'recordingLabelText' />
<img
className = 'recordingSpinner'
id = 'recordingSpinner'
src = 'images/spin.svg' />
</span>
</div>
);
}
}