fix untested stuff with iframe homepages

This commit is contained in:
Matthew Hodgson 2017-06-01 11:13:04 +01:00
parent 4805bcf364
commit 623f995934

View file

@ -38,44 +38,43 @@ module.exports = React.createClass({
getInitialState: function() { getInitialState: function() {
return { return {
page: "" iframeSrc: '',
page: '',
}; };
}, },
componentWillMount: function() { componentWillMount: function() {
if (this.props.teamToken && this.props.teamServerUrl) { if (this.props.teamToken && this.props.teamServerUrl) {
return; this.setState({
iframeSrc: `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`
});
} }
else {
// we use request() to inline the homepage into the react component
// so that it can inherit CSS and theming easily rather than mess around
// with iframes and trying to synchronise document.stylesheets.
// we use request() to inline the homepage into the react component let src = this.props.homePageUrl || '/home.html';
// so that it can inherit CSS and theming easily rather than mess around
// with iframes and trying to synchronise document.stylesheets.
let src = this.props.homePageUrl || '/home.html'; request(
{ method: "GET", url: src },
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
console.log(error);
this.setState({ page: "Couldn't load home page" });
}
request( this.setState({ page: body });
{ method: "GET", url: src },
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
console.log(error);
this.setState({ page: "Couldn't load home page" });
} }
);
// We parse the JSON ourselves rather than use the JSON }
// parameter, since this throws a parse error on empty
// which breaks if there's no config.json and we're
// loading from the filesystem (see above).
this.setState({ page: body });
}
);
}, },
render: function() { render: function() {
if (this.props.teamToken && this.props.teamServerUrl) { if (this.state.iframeSrc) {
src = `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`;
return ( return (
<div className="mx_HomePage"> <div className="mx_HomePage">
<iframe src={ src } /> <iframe src={ this.state.iframeSrc } />
</div> </div>
); );
} }