From b7c4ebba840e7d9ae51deb2fa3663a6b40575e13 Mon Sep 17 00:00:00 2001 From: Lyubo Marinov Date: Wed, 24 May 2017 12:01:46 -0500 Subject: [PATCH] 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. --- .../components/Conference.native.js | 24 +++- .../conference/components/Conference.web.js | 115 +++--------------- .../filmstrip/components/Filmstrip.native.js | 6 +- .../filmstrip/components/Filmstrip.web.js | 65 ++++++++++ react/features/filmstrip/components/_.web.js | 0 .../{LargeVideo.js => LargeVideo.native.js} | 5 +- .../large-video/components/LargeVideo.web.js | 62 ++++++++++ 7 files changed, 173 insertions(+), 104 deletions(-) create mode 100644 react/features/filmstrip/components/_.web.js rename react/features/large-video/components/{LargeVideo.js => LargeVideo.native.js} (88%) create mode 100644 react/features/large-video/components/LargeVideo.web.js diff --git a/react/features/conference/components/Conference.native.js b/react/features/conference/components/Conference.native.js index 91492d0b1..9941de18a 100644 --- a/react/features/conference/components/Conference.native.js +++ b/react/features/conference/components/Conference.native.js @@ -6,6 +6,7 @@ import { DialogContainer } from '../../base/dialog'; import { Container } from '../../base/react'; import { Filmstrip } from '../../filmstrip'; import { LargeVideo } from '../../large-video'; +import { OverlayContainer } from '../../overlay'; import { setToolboxVisible, Toolbox } from '../../toolbox'; import { styles } from './styles'; @@ -130,12 +131,33 @@ class Conference extends Component { style = { styles.conference } touchFeedback = { false }> + {/* + * The LargeVideo is the lowermost stacking layer. + */} - + {/* + * The Filmstrip is in a stacking layer above the LargeVideo. + * The LargeVideo and the Filmstrip form what the Web/React app + * calls "videospace". Presumably, the name and grouping stem + * from the fact that these two React Components depict the + * videos of the conference's participants. + */} + {/* + * The Toolbox is in a stacking layer above the Filmstrip. + */} + + + {/* + * The dialogs and overlays are in the topmost stacking layers. + * Generally, the dialogs and overlays should not be visible at + * the same time so it is not really defined which one is above + * the other. + */} + ); } diff --git a/react/features/conference/components/Conference.web.js b/react/features/conference/components/Conference.web.js index b3aee0b07..887634b9b 100644 --- a/react/features/conference/components/Conference.web.js +++ b/react/features/conference/components/Conference.web.js @@ -5,12 +5,11 @@ import { connect as reactReduxConnect } from 'react-redux'; import { connect, disconnect } from '../../base/connection'; import { DialogContainer } from '../../base/dialog'; -import { Watermarks } from '../../base/react'; +import { Filmstrip } from '../../filmstrip'; +import { LargeVideo } from '../../large-video'; import { OverlayContainer } from '../../overlay'; import { Toolbox } from '../../toolbox'; import { HideNotificationBarStyle } from '../../unsupported-browser'; -import { VideoStatusLabel } from '../../video-status-label'; -import '../../filmstrip'; declare var $: Function; declare var APP: Object; @@ -68,114 +67,28 @@ class Conference extends Component { render() { return (
- -
-
-
-
-
-
+ - - -
-
- -
- -
-
- - - - - - -
- { this._renderFilmstrip() } +
+ + + + {/* + * Temasys automatically injects a notification bar, if + * necessary, displayed at the top of the page notifying that + * WebRTC is not installed or supported. We do not need/want + * the notification bar in question because we have whole pages + * dedicated to the respective scenarios. + */}
); } - - /** - * Creates a React Element for displaying filmstrip videos. - * - * @private - * @returns {ReactElement} - */ - _renderFilmstrip() { - return ( -
-
-
- -
- -