Merge pull request #3681 from matrix-org/travis/fix-jitsi

Fix persisted widgets getting stuck at loading screens
This commit is contained in:
Travis Ralston 2019-11-28 09:06:44 -07:00 committed by GitHub
commit 90a1cb68eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -36,6 +36,7 @@ import classNames from 'classnames';
import {IntegrationManagers} from "../../../integrations/IntegrationManagers"; import {IntegrationManagers} from "../../../integrations/IntegrationManagers";
import SettingsStore, {SettingLevel} from "../../../settings/SettingsStore"; import SettingsStore, {SettingLevel} from "../../../settings/SettingsStore";
import {createMenu} from "../../structures/ContextualMenu"; import {createMenu} from "../../structures/ContextualMenu";
import PersistedElement from "./PersistedElement";
const ALLOWED_APP_URL_SCHEMES = ['https:', 'http:']; const ALLOWED_APP_URL_SCHEMES = ['https:', 'http:'];
const ENABLE_REACT_PERF = false; const ENABLE_REACT_PERF = false;
@ -247,7 +248,8 @@ export default class AppTile extends React.Component {
this.setScalarToken(); this.setScalarToken();
} }
} else if (nextProps.show && !this.props.show) { } else if (nextProps.show && !this.props.show) {
if (this.props.waitForIframeLoad) { // We assume that persisted widgets are loaded and don't need a spinner.
if (this.props.waitForIframeLoad && !PersistedElement.isMounted(this._persistKey)) {
this.setState({ this.setState({
loading: true, loading: true,
}); });
@ -652,12 +654,7 @@ export default class AppTile extends React.Component {
appTileBody = ( appTileBody = (
<div className={appTileBodyClass + (this.state.loading ? 'mx_AppLoading' : '')}> <div className={appTileBodyClass + (this.state.loading ? 'mx_AppLoading' : '')}>
{ this.state.loading && loadingElement } { this.state.loading && loadingElement }
{ /*
The "is" attribute in the following iframe tag is needed in order to enable rendering of the
"allow" attribute, which is unknown to react 15.
*/ }
<iframe <iframe
is
allow={iframeFeatures} allow={iframeFeatures}
ref="appFrame" ref="appFrame"
src={this._getSafeUrl()} src={this._getSafeUrl()}