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:
@@ -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
|
||||
*/
|
||||
62
react/features/large-video/components/LargeVideo.web.js
Normal file
62
react/features/large-video/components/LargeVideo.web.js
Normal 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>
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user