while logging out ignore Session.logged_out as it is intentional

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Michael Telatynski 2018-07-15 22:33:00 +01:00
parent f429ae5617
commit ffe0b35504
No known key found for this signature in database
GPG key ID: 3F879DA5AD802A5E
2 changed files with 9 additions and 0 deletions

View file

@ -385,6 +385,8 @@ function _persistCredentialsToLocalStorage(credentials) {
console.log(`Session persisted for ${credentials.userId}`); console.log(`Session persisted for ${credentials.userId}`);
} }
let _isLoggingOut = false;
/** /**
* Logs the current session out and transitions to the logged-out state * Logs the current session out and transitions to the logged-out state
*/ */
@ -404,6 +406,7 @@ export function logout() {
return; return;
} }
_isLoggingOut = true;
MatrixClientPeg.get().logout().then(onLoggedOut, MatrixClientPeg.get().logout().then(onLoggedOut,
(err) => { (err) => {
// Just throwing an error here is going to be very unhelpful // Just throwing an error here is going to be very unhelpful
@ -419,6 +422,10 @@ export function logout() {
).done(); ).done();
} }
export function isLoggingOut() {
return _isLoggingOut;
}
/** /**
* Starts the matrix client and all other react-sdk services that * Starts the matrix client and all other react-sdk services that
* listen for events while a session is logged in. * listen for events while a session is logged in.
@ -449,6 +456,7 @@ async function startMatrixClient() {
* storage. Used after a session has been logged out. * storage. Used after a session has been logged out.
*/ */
export function onLoggedOut() { export function onLoggedOut() {
_isLoggingOut = false;
stopMatrixClient(); stopMatrixClient();
_clearStorage().done(); _clearStorage().done();
dis.dispatch({action: 'on_logged_out'}); dis.dispatch({action: 'on_logged_out'});

View file

@ -1262,6 +1262,7 @@ export default React.createClass({
}, true); }, true);
}); });
cli.on('Session.logged_out', function(call) { cli.on('Session.logged_out', function(call) {
if (Lifecycle.isLoggingOut()) return;
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createTrackedDialog('Signed out', '', ErrorDialog, { Modal.createTrackedDialog('Signed out', '', ErrorDialog, {
title: _t('Signed Out'), title: _t('Signed Out'),