From d9daf1346395d5126104d53f2515aa2ebbbd89ce Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 17 Aug 2022 15:08:35 +0200 Subject: [PATCH] fix(frontend/player-assist): clear inactiveTimeout on each 'active' update; clearTimeout(s) code-style fix --- .../managers/AssistManager.ts | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/frontend/app/player/MessageDistributor/managers/AssistManager.ts b/frontend/app/player/MessageDistributor/managers/AssistManager.ts index 2ba90311e..b8682b09b 100644 --- a/frontend/app/player/MessageDistributor/managers/AssistManager.ts +++ b/frontend/app/player/MessageDistributor/managers/AssistManager.ts @@ -119,8 +119,16 @@ export default class AssistManager { const jmr = new JSONRawMessageReader() const reader = new MStreamReader(jmr) let waitingForMessages = true - let showDisconnectTimeout: ReturnType | undefined + let disconnectTimeout: ReturnType | undefined let inactiveTimeout: ReturnType | undefined + function clearDisconnectTimeout() { + disconnectTimeout && clearTimeout(disconnectTimeout) + disconnectTimeout = undefined + } + function clearInactiveTimeout() { + inactiveTimeout && clearTimeout(inactiveTimeout) + inactiveTimeout = undefined + } import('socket.io-client').then(({ default: io }) => { if (this.cleaned) { return } if (this.socket) { this.socket.close() } // TODO: single socket connection @@ -171,17 +179,17 @@ export default class AssistManager { id === socket.id && this.toggleRemoteControl(false) }) socket.on('SESSION_RECONNECTED', () => { - showDisconnectTimeout && clearTimeout(showDisconnectTimeout) - inactiveTimeout && clearTimeout(inactiveTimeout) + clearDisconnectTimeout() + clearInactiveTimeout() this.setStatus(ConnectionStatus.Connected) }) socket.on('UPDATE_SESSION', ({ active }) => { - showDisconnectTimeout && clearTimeout(showDisconnectTimeout) + clearDisconnectTimeout() !inactiveTimeout && this.setStatus(ConnectionStatus.Connected) if (typeof active === "boolean") { + clearInactiveTimeout() if (active) { - inactiveTimeout && clearTimeout(inactiveTimeout) this.setStatus(ConnectionStatus.Connected) } else { inactiveTimeout = setTimeout(() => this.setStatus(ConnectionStatus.Inactive), 5000) @@ -190,8 +198,8 @@ export default class AssistManager { }) socket.on('SESSION_DISCONNECTED', e => { waitingForMessages = true - showDisconnectTimeout && clearTimeout(showDisconnectTimeout) - showDisconnectTimeout = setTimeout(() => { + clearDisconnectTimeout() + disconnectTimeout = setTimeout(() => { if (this.cleaned) { return } this.setStatus(ConnectionStatus.Disconnected) }, 30000)