From a1fb9664463f3d339343561538c466ea8bb480a7 Mon Sep 17 00:00:00 2001 From: Gleidson Daniel Silva Date: Thu, 25 Apr 2024 17:31:23 -0300 Subject: [PATCH] feat: add force-logout stream listener (#5643) * feat: add force-logout stream listener * Update app/lib/services/connect.ts --- app/lib/services/connect.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/lib/services/connect.ts b/app/lib/services/connect.ts index 92dc4f0cf..527a9653f 100644 --- a/app/lib/services/connect.ts +++ b/app/lib/services/connect.ts @@ -9,7 +9,7 @@ import protectedFunction from '../methods/helpers/protectedFunction'; import database from '../database'; import { twoFactor } from './twoFactor'; import { store } from '../store/auxStore'; -import { loginRequest, setLoginServices, setUser } from '../../actions/login'; +import { loginRequest, logout, setLoginServices, setUser } from '../../actions/login'; import sdk from './sdk'; import I18n from '../../i18n'; import { ICredentials, ILoggedUser, STATUSES } from '../../definitions'; @@ -46,6 +46,7 @@ let usersListener: any; let notifyAllListener: any; let rolesListener: any; let notifyLoggedListener: any; +let logoutListener: any; function connect({ server, logoutOnError = false }: { server: string; logoutOnError?: boolean }): Promise { return new Promise(resolve => { @@ -89,6 +90,10 @@ function connect({ server, logoutOnError = false }: { server: string; logoutOnEr notifyLoggedListener.then(stopListener); } + if (logoutListener) { + logoutListener.then(stopListener); + } + unsubscribeRooms(); EventEmitter.emit('INQUIRY_UNSUBSCRIBE'); @@ -270,6 +275,8 @@ function connect({ server, logoutOnError = false }: { server: string; logoutOnEr }) ); + logoutListener = sdk.current.onStreamData('stream-force_logout', () => store.dispatch(logout(true))); + resolve(); }); }