Stop the MatrixClient when the MatrixChat is unmounted
The MatrixClient never gets unmounted in the real app, but I've been working on some tests which would rather like to be able to create and destroy MatrixChats and not have the clients hang around forever.
This commit is contained in:
parent
f9785f68af
commit
1361333fdc
1 changed files with 12 additions and 6 deletions
|
@ -183,6 +183,7 @@ module.exports = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
componentWillUnmount: function() {
|
componentWillUnmount: function() {
|
||||||
|
this._stopMatrixClient();
|
||||||
dis.unregister(this.dispatcherRef);
|
dis.unregister(this.dispatcherRef);
|
||||||
document.removeEventListener("keydown", this.onKeyDown);
|
document.removeEventListener("keydown", this.onKeyDown);
|
||||||
window.removeEventListener("focus", this.onFocus);
|
window.removeEventListener("focus", this.onFocus);
|
||||||
|
@ -258,12 +259,7 @@ module.exports = React.createClass({
|
||||||
window.localStorage.setItem("mx_hs_url", hsUrl);
|
window.localStorage.setItem("mx_hs_url", hsUrl);
|
||||||
window.localStorage.setItem("mx_is_url", isUrl);
|
window.localStorage.setItem("mx_is_url", isUrl);
|
||||||
}
|
}
|
||||||
Notifier.stop();
|
this._stopMatrixClient();
|
||||||
UserActivity.stop();
|
|
||||||
Presence.stop();
|
|
||||||
MatrixClientPeg.get().stopClient();
|
|
||||||
MatrixClientPeg.get().removeAllListeners();
|
|
||||||
MatrixClientPeg.unset();
|
|
||||||
this.notifyNewScreen('login');
|
this.notifyNewScreen('login');
|
||||||
this.replaceState({
|
this.replaceState({
|
||||||
logged_in: false,
|
logged_in: false,
|
||||||
|
@ -722,6 +718,16 @@ module.exports = React.createClass({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// stop all the background processes related to the current client
|
||||||
|
_stopMatrixClient: function() {
|
||||||
|
Notifier.stop();
|
||||||
|
UserActivity.stop();
|
||||||
|
Presence.stop();
|
||||||
|
MatrixClientPeg.get().stopClient();
|
||||||
|
MatrixClientPeg.get().removeAllListeners();
|
||||||
|
MatrixClientPeg.unset();
|
||||||
|
},
|
||||||
|
|
||||||
onKeyDown: function(ev) {
|
onKeyDown: function(ev) {
|
||||||
/*
|
/*
|
||||||
// Remove this for now as ctrl+alt = alt-gr so this breaks keyboards which rely on alt-gr for numbers
|
// Remove this for now as ctrl+alt = alt-gr so this breaks keyboards which rely on alt-gr for numbers
|
||||||
|
|
Loading…
Reference in a new issue