diff --git a/src/global/actions/api/sync.ts b/src/global/actions/api/sync.ts index c205b7158..291e261be 100644 --- a/src/global/actions/api/sync.ts +++ b/src/global/actions/api/sync.ts @@ -236,7 +236,10 @@ addCallback((global: GlobalState) => { const { connectionState, authState } = global; const { isMasterTab } = selectTabState(global); if (!isMasterTab || (previousGlobal?.connectionState === connectionState - && previousGlobal?.authState === authState)) return; + && previousGlobal?.authState === authState)) { + previousGlobal = global; + return; + } if (connectionState === 'connectionStateReady' && authState === 'authorizationStateReady') { // eslint-disable-next-line eslint-multitab-tt/no-getactions-in-actions diff --git a/src/global/actions/ui/initial.ts b/src/global/actions/ui/initial.ts index 191cc4d93..382b7c005 100644 --- a/src/global/actions/ui/initial.ts +++ b/src/global/actions/ui/initial.ts @@ -51,6 +51,13 @@ addActionHandler('switchMultitabRole', async (global, actions, payload): Promise global = getGlobal(); if (!global.passcode.hasPasscode || !global.passcode.isScreenLocked) { + if (global.connectionState === 'connectionStateReady') { + global = { + ...global, + connectionState: 'connectionStateConnecting', + }; + setGlobal(global); + } actions.initApi(); const { hasWebNotifications, hasPushNotifications } = selectNotifySettings(global);