correctly re-initialize tinode after logout

This commit is contained in:
or-else
2018-10-03 12:48:43 +03:00
parent 57fa378f4d
commit e712bff7b3
+15 -6
View File
@@ -4596,6 +4596,8 @@ class TinodeWeb extends React.Component {
this.setState({viewportWidth: document.documentElement.clientWidth});
this.tinode = TinodeWeb.tnSetup(this.state.serverAddress, this.state.transport);
this.tinode.onConnect = this.handleConnected;
this.tinode.onDisconnect = this.handleDisconnect;
// Initialize desktop alerts.
if (this.state.desktopAlertsEnabled) {
@@ -4623,10 +4625,6 @@ class TinodeWeb extends React.Component {
}
}
this.tinode.enableLogging(true, true);
this.tinode.onConnect = this.handleConnected;
this.tinode.onDisconnect = this.handleDisconnect;
let token = localStorage.getObject("keep-logged-in") ?
localStorage.getObject("auth-token") : undefined;
@@ -4661,7 +4659,9 @@ class TinodeWeb extends React.Component {
// Setup transport (usually websocket) and server address. This will terminate connection with the server.
static tnSetup(serverAddress, transport) {
return new Tinode(APP_NAME, serverAddress, API_KEY, transport, isSecureConnection());
let tinode = new Tinode(APP_NAME, serverAddress, API_KEY, transport, isSecureConnection());
tinode.enableLogging(true, true);
return tinode;
}
handleResize() {
@@ -5136,11 +5136,18 @@ class TinodeWeb extends React.Component {
handleGlobalSettings(settings) {
let serverAddress = settings.serverAddress || this.state.serverAddress;
let transport = settings.transport || this.state.transport;
if (this.tinode) {
this.tinode.onDisconnect = undefined;
this.tinode.disconnect();
}
let tinode = TinodeWeb.tnSetup(serverAddress, transport);
tinode.onConnect = this.handleConnected;
tinode.onDisconnect = this.handleDisconnect;
this.setState({
serverAddress: serverAddress,
transport: transport,
tinode: TinodeWeb.tnSetup(serverAddress, transport),
tinode: tinode
});
localStorage.setObject("settings", {
serverAddress: serverAddress,
@@ -5310,6 +5317,8 @@ class TinodeWeb extends React.Component {
}
this.setState(this.getBlankState());
this.tinode = TinodeWeb.tnSetup(this.state.serverAddress, this.state.transport);
this.tinode.onConnect = this.handleConnected;
this.tinode.onDisconnect = this.handleDisconnect;
navigateTo("");
}