Merge pull request #2098 from matrix-org/dbkr/destroy_widget

Destroy non-persistent widgets when switching room
This commit is contained in:
David Baker 2018-08-17 09:53:41 +01:00 committed by GitHub
commit 94c7ae2bf5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View file

@ -161,6 +161,8 @@ export default class AppTile extends React.Component {
// if it's not remaining on screen, get rid of the PersistedElement container // if it's not remaining on screen, get rid of the PersistedElement container
if (!ActiveWidgetStore.getWidgetPersistence(this.props.id)) { if (!ActiveWidgetStore.getWidgetPersistence(this.props.id)) {
ActiveWidgetStore.destroyPersistentWidget(); ActiveWidgetStore.destroyPersistentWidget();
const PersistedElement = sdk.getComponent("elements.PersistedElement");
PersistedElement.destroyElement(this._persistKey);
} }
} }
@ -437,6 +439,8 @@ export default class AppTile extends React.Component {
// Force the widget to be non-persistent // Force the widget to be non-persistent
ActiveWidgetStore.destroyPersistentWidget(); ActiveWidgetStore.destroyPersistentWidget();
const PersistedElement = sdk.getComponent("elements.PersistedElement");
PersistedElement.destroyElement(this._persistKey);
} }
formatAppTileName() { formatAppTileName() {

View file

@ -17,7 +17,6 @@ limitations under the License.
import EventEmitter from 'events'; import EventEmitter from 'events';
import MatrixClientPeg from '../MatrixClientPeg'; import MatrixClientPeg from '../MatrixClientPeg';
import sdk from '../index';
/** /**
* Stores information about the widgets active in the app right now: * Stores information about the widgets active in the app right now:
@ -75,8 +74,6 @@ class ActiveWidgetStore extends EventEmitter {
destroyPersistentWidget() { destroyPersistentWidget() {
const toDeleteId = this._persistentWidgetId; const toDeleteId = this._persistentWidgetId;
const PersistedElement = sdk.getComponent("elements.PersistedElement");
PersistedElement.destroyElement('widget_' + toDeleteId);
this.setWidgetPersistence(toDeleteId, false); this.setWidgetPersistence(toDeleteId, false);
this.delWidgetMessaging(toDeleteId); this.delWidgetMessaging(toDeleteId);
this.delWidgetCapabilities(toDeleteId); this.delWidgetCapabilities(toDeleteId);