From 84ae7df8f1a36fc8e793c74ce3adb288e32b087d Mon Sep 17 00:00:00 2001 From: virtuacoplenny Date: Wed, 5 Jul 2017 19:07:00 -0700 Subject: [PATCH] fix(filmstrip-only): vertically align center the toolbar (#1700) * fix(filmstrip-only): vertically align center the toolbar Use top 50% to position the toolbar's top at the vertical center of the iframe. Then use transform 50% to move the toolbar itself up 50% so its middle matches the middle of the iframe. * squash: toolbox should center with filmstrip --- css/_filmstrip.scss | 1 - css/_toolbars.scss | 11 ++++++--- css/_vertical_filmstrip_overrides.scss | 23 +++++++++++++++++++ .../conference/components/Conference.web.js | 7 ++++-- .../filmstrip/components/Filmstrip.web.js | 10 ++++++++ .../toolbox/components/Toolbox.web.js | 4 ++-- 6 files changed, 48 insertions(+), 8 deletions(-) diff --git a/css/_filmstrip.scss b/css/_filmstrip.scss index f45b9bfbd..c885ec7b0 100644 --- a/css/_filmstrip.scss +++ b/css/_filmstrip.scss @@ -135,7 +135,6 @@ &__videos-filmstripOnly { margin-top: auto; margin-bottom: auto; - padding-right: $defaultFilmStripOnlyToolbarSize; } .remote-videos-container { diff --git a/css/_toolbars.scss b/css/_toolbars.scss index abf1dc215..e73e1d774 100644 --- a/css/_toolbars.scss +++ b/css/_toolbars.scss @@ -195,11 +195,8 @@ */ &_filmstrip-only { border-radius: 3px; - bottom: 0; display: inline-block; height: auto; - position: absolute; - right: 0; width: $defaultFilmStripOnlyToolbarSize; .button { @@ -228,6 +225,14 @@ } } +.filmstrip-only { + .toolbox, + .toolbox-toolbars { + align-items: center; + display: flex; + } +} + .subject { background: linear-gradient(to bottom, rgba(255,255,255,.85) , rgba(255,255,255,.35)); border-bottom-left-radius: 12px; diff --git a/css/_vertical_filmstrip_overrides.scss b/css/_vertical_filmstrip_overrides.scss index 9047b2cee..698e35536 100644 --- a/css/_vertical_filmstrip_overrides.scss +++ b/css/_vertical_filmstrip_overrides.scss @@ -93,6 +93,29 @@ } } + &.filmstrip-only { + .filmstrip { + flex-direction: row-reverse; + } + .filmstrip__videos-filmstripOnly { + height: 100%; + } + + /** + * In filmstrip only mode, the toolbar is normally displayed in the + * vertical center of the filmstrip strip. In vertical filmstrip mode, + * that alignment makes the toolbar appear floating and detached from + * the filmstrip. So, instead anchor the toolbar next to the local + * video. + */ + .toolbar_filmstrip-only { + bottom: 0; + top: auto; + transform: none; + } + + } + /** * These styles are for the video labels that display on the top right. The * styles adjust the labels' positioning as the filmstrip itself or diff --git a/react/features/conference/components/Conference.web.js b/react/features/conference/components/Conference.web.js index c4e9825be..bc558d6c7 100644 --- a/react/features/conference/components/Conference.web.js +++ b/react/features/conference/components/Conference.web.js @@ -13,6 +13,7 @@ import { HideNotificationBarStyle } from '../../unsupported-browser'; declare var $: Function; declare var APP: Object; +declare var interfaceConfig: Object; /** * The conference page of the Web application. @@ -65,14 +66,16 @@ class Conference extends Component { * @returns {ReactElement} */ render() { + const { filmStripOnly } = interfaceConfig; + return (
- +
- + { filmStripOnly ? null : } diff --git a/react/features/filmstrip/components/Filmstrip.web.js b/react/features/filmstrip/components/Filmstrip.web.js index d5013b1df..eec490353 100644 --- a/react/features/filmstrip/components/Filmstrip.web.js +++ b/react/features/filmstrip/components/Filmstrip.web.js @@ -2,6 +2,8 @@ import React, { Component } from 'react'; +import { Toolbox } from '../../toolbox'; + /** * Implements a React {@link Component} which represents the filmstrip on * Web/React. @@ -9,6 +11,13 @@ import React, { Component } from 'react'; * @extends Component */ export default class Filmstrip extends Component { + static propTypes = { + /** + * Whether or not the toolbox should be displayed within the filmstrip. + */ + displayToolbox: React.PropTypes.bool + }; + /** * Implements React's {@link Component#render()}. * @@ -18,6 +27,7 @@ export default class Filmstrip extends Component { render() { return (
+ { this.props.displayToolbox ? : null }
diff --git a/react/features/toolbox/components/Toolbox.web.js b/react/features/toolbox/components/Toolbox.web.js index da1cc4316..370ca036e 100644 --- a/react/features/toolbox/components/Toolbox.web.js +++ b/react/features/toolbox/components/Toolbox.web.js @@ -108,7 +108,7 @@ class Toolbox extends Component { */ render(): ReactElement<*> { return ( -
+
{ this._renderSubject() } @@ -171,7 +171,7 @@ class Toolbox extends Component { } return ( -
+