1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-11-20 16:22:28 +03:00

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
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);