From d8ad39ed3f53d4b03f8fa2f7cd53cebf999073bb Mon Sep 17 00:00:00 2001 From: virtuacoplenny Date: Mon, 9 Apr 2018 13:50:57 -0700 Subject: [PATCH] fix(welcome-page): modify styling for narrow screens (#2724) * fix(welcome-page): modify styling for narrow screens * squash: fix autoscrolling on mobile safari --- css/_welcome_page.scss | 8 +++++++- react/features/app/functions.web.js | 15 +++++++++++---- .../welcome/components/WelcomePage.web.js | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/css/_welcome_page.scss b/css/_welcome_page.scss index 6b635e5ae..cc326a417 100644 --- a/css/_welcome_page.scss +++ b/css/_welcome_page.scss @@ -1,7 +1,11 @@ +body.welcome-page { + background: inherit; + overflow: auto; +} + .welcome { font-family: $welcomePageFontFamily; height: 100%; - overflow: auto; position: relative; .header { @@ -19,6 +23,7 @@ justify-content: space-around; margin-top: 120px; margin-bottom: 20px; + max-width: calc(100% - 40px); min-height: 286px; width: 645px; } @@ -50,6 +55,7 @@ align-items: center; display: flex; margin-bottom: 20px; + max-width: calc(100% - 40px); position: relative; z-index: 2; diff --git a/react/features/app/functions.web.js b/react/features/app/functions.web.js index 2d9d5b263..77979411c 100644 --- a/react/features/app/functions.web.js +++ b/react/features/app/functions.web.js @@ -31,9 +31,9 @@ const _INTERCEPT_COMPONENT_RULES = [ /** * This rule describes case when user opens application using mobile - * browser. In order to promote the app, we choose to suggest the mobile - * app even if the browser supports the app (e.g. Google Chrome with - * WebRTC support on Android). + * browser and is attempting to join a conference. In order to promote the + * app, we choose to suggest the mobile app even if the browser supports the + * app (e.g. Google Chrome with WebRTC support on Android). * * @param {Object} state - The redux state of the app. * @returns {UnsupportedMobileBrowser|void} If the rule is satisfied then @@ -42,8 +42,15 @@ const _INTERCEPT_COMPONENT_RULES = [ // eslint-disable-next-line no-unused-vars state => { const OS = Platform.OS; + const { room } = state['features/base/conference']; + const isUsingMobileBrowser = OS === 'android' || OS === 'ios'; - if (OS === 'android' || OS === 'ios') { + /** + * Checking for presence of a room is done so that interception only + * occurs when trying to enter a meeting but pages outside of meeting, + * like WelcomePage, can still display. + */ + if (room && isUsingMobileBrowser) { const mobileAppPromo = typeof interfaceConfig === 'object' && interfaceConfig.MOBILE_APP_PROMO; diff --git a/react/features/welcome/components/WelcomePage.web.js b/react/features/welcome/components/WelcomePage.web.js index c69ee90d7..4acdb6715 100644 --- a/react/features/welcome/components/WelcomePage.web.js +++ b/react/features/welcome/components/WelcomePage.web.js @@ -10,6 +10,7 @@ import { initAnalytics } from '../../analytics'; import { translate } from '../../base/i18n'; import { isAnalyticsEnabled } from '../../base/lib-jitsi-meet'; import { Watermarks } from '../../base/react'; +import { HideNotificationBarStyle } from '../../unsupported-browser'; import { AbstractWelcomePage, _mapStateToProps } from './AbstractWelcomePage'; @@ -69,6 +70,8 @@ class WelcomePage extends AbstractWelcomePage { * @returns {void} */ componentDidMount() { + document.body.classList.add('welcome-page'); + // FIXME: This is not the best place for this logic. Ideally we should // use features/base/lib-jitsi-meet#initLib() action for this use case. // But currently lib-jitsi-meet#initLib()'s logic works for mobile only @@ -90,6 +93,16 @@ class WelcomePage extends AbstractWelcomePage { } } + /** + * Removes the classname used for custom styling of the welcome page. + * + * @inheritdoc + * @returns {void} + */ + componentWillUnmount() { + document.body.classList.remove('welcome-page'); + } + /** * Implements React's {@link Component#render()}. * @@ -150,6 +163,7 @@ class WelcomePage extends AbstractWelcomePage { ref = { this._setAdditionalContentRef } /> : null } + ); }