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
1 changed files with 22 additions and 23 deletions

View File

@ -38,44 +38,43 @@ module.exports = React.createClass({
getInitialState: function() {
return {
page: ""
iframeSrc: '',
page: '',
};
},
componentWillMount: function() {
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
// 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';
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(
{ 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" });
this.setState({ page: body });
}
// 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() {
if (this.props.teamToken && this.props.teamServerUrl) {
src = `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`;
if (this.state.iframeSrc) {
return (
<div className="mx_HomePage">
<iframe src={ src } />
<iframe src={ this.state.iframeSrc } />
</div>
);
}