From 73de56d72d2a8d9c11de0c0603502f5ebc4aa840 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Thu, 7 Feb 2019 11:12:28 +0000 Subject: [PATCH] Generalize HomePage into EmbeddedPage --- res/css/structures/_HomePage.scss | 8 +------ .../{HomePage.js => EmbeddedPage.js} | 21 +++++++++++-------- src/components/structures/LoggedInView.js | 6 +++--- 3 files changed, 16 insertions(+), 19 deletions(-) rename src/components/structures/{HomePage.js => EmbeddedPage.js} (82%) diff --git a/res/css/structures/_HomePage.scss b/res/css/structures/_HomePage.scss index 5f1e035e99..3aa80f6f59 100644 --- a/res/css/structures/_HomePage.scss +++ b/res/css/structures/_HomePage.scss @@ -1,6 +1,7 @@ /* Copyright 2016 OpenMarket Ltd Copyright 2017 Vector Creations Ltd +Copyright 2019 New Vector Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,10 +23,3 @@ limitations under the License. margin-left: auto; margin-right: auto; } - -.mx_HomePage iframe { - display: block; - width: 100%; - height: 100%; - border: 0px; -} diff --git a/src/components/structures/HomePage.js b/src/components/structures/EmbeddedPage.js similarity index 82% rename from src/components/structures/HomePage.js rename to src/components/structures/EmbeddedPage.js index f21af3a32c..8e5be965e7 100644 --- a/src/components/structures/HomePage.js +++ b/src/components/structures/EmbeddedPage.js @@ -27,10 +27,12 @@ import sdk from '../../index'; import { MatrixClient } from 'matrix-js-sdk'; import classnames from 'classnames'; -export default class HomePage extends React.PureComponent { +export default class EmbeddedPage extends React.PureComponent { static propTypes = { - // URL to use as the iFrame src. Defaults to /home.html. - homePageUrl: PropTypes.string, + // URL to request embedded page content from + url: PropTypes.string, + // Class name prefix to apply for a given instance + className: PropTypes.string, }; static contextTypes = { @@ -57,10 +59,8 @@ export default class HomePage extends React.PureComponent { // so that it can inherit CSS and theming easily rather than mess around // with iframes and trying to synchronise document.stylesheets. - const src = this.props.homePageUrl || 'home.html'; - request( - { method: "GET", url: src }, + { method: "GET", url: this.props.url }, (err, response, body) => { if (this._unmounted) { return; @@ -84,14 +84,17 @@ export default class HomePage extends React.PureComponent { render() { const isGuest = this.context.matrixClient.isGuest(); + const className = this.props.className; const classes = classnames({ - mx_HomePage: true, - mx_HomePage_guest: isGuest, + [className]: true, + [`${className}_guest`]: isGuest, }); const GeminiScrollbarWrapper = sdk.getComponent("elements.GeminiScrollbarWrapper"); return -
+
; } diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index eac4422de0..22a6110674 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -420,7 +420,7 @@ const LoggedInView = React.createClass({ render: function() { const LeftPanel = sdk.getComponent('structures.LeftPanel'); const RoomView = sdk.getComponent('structures.RoomView'); - const HomePage = sdk.getComponent('structures.HomePage'); + const EmbeddedPage = sdk.getComponent('structures.EmbeddedPage'); const GroupView = sdk.getComponent('structures.GroupView'); const MyGroups = sdk.getComponent('structures.MyGroups'); const MatrixToolbar = sdk.getComponent('globals.MatrixToolbar'); @@ -459,8 +459,8 @@ const LoggedInView = React.createClass({ case PageTypes.HomePage: { - pageElement = ; } break;