diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss index 3a5edee0e..677e429ab 100644 --- a/stylesheets/_modules.scss +++ b/stylesheets/_modules.scss @@ -93,6 +93,7 @@ display: flex; flex-direction: row; align-items: center; + padding: 10px; } .module-message__generic-attachment__icon-container { diff --git a/ts/session/onions/onionPath.ts b/ts/session/onions/onionPath.ts index 891588dbe..8e8dfc759 100644 --- a/ts/session/onions/onionPath.ts +++ b/ts/session/onions/onionPath.ts @@ -142,9 +142,13 @@ export async function getOnionPath(toExclude?: Snode): Promise> { } if (onionPaths.length <= 0) { - window.inboxStore?.dispatch(updateOnionPaths([])); + if (!_.isEmpty(window.inboxStore?.getState().onionPaths.snodePaths)) { + window.inboxStore?.dispatch(updateOnionPaths([])); + } } else { - window.inboxStore?.dispatch(updateOnionPaths(onionPaths)); + if (!_.isEqual(window.inboxStore?.getState().onionPaths.snodePaths, onionPaths)) { + window.inboxStore?.dispatch(updateOnionPaths(onionPaths)); + } } const onionPathsWithoutExcluded = toExclude diff --git a/ts/session/snode_api/SNodeAPI.ts b/ts/session/snode_api/SNodeAPI.ts index 61360f246..267097b23 100644 --- a/ts/session/snode_api/SNodeAPI.ts +++ b/ts/session/snode_api/SNodeAPI.ts @@ -578,12 +578,16 @@ export async function retrieveNextMessages( try { const json = JSON.parse(result.body); - window.inboxStore?.dispatch(updateIsOnline(true)); + if (!window.inboxStore?.getState().onionPaths.isOnline) { + window.inboxStore?.dispatch(updateIsOnline(true)); + } return json.messages || []; } catch (e) { window?.log?.warn('exception while parsing json of nextMessage:', e); - window.inboxStore?.dispatch(updateIsOnline(true)); + if (!window.inboxStore?.getState().onionPaths.isOnline) { + window.inboxStore?.dispatch(updateIsOnline(true)); + } throw new Error( `loki_message:::_retrieveNextMessages - exception while parsing json of nextMessage ${targetNode.ip}:${targetNode.port}: ${e?.message}` ); diff --git a/ts/session/snode_api/swarmPolling.ts b/ts/session/snode_api/swarmPolling.ts index d41a770ff..0486878d3 100644 --- a/ts/session/snode_api/swarmPolling.ts +++ b/ts/session/snode_api/swarmPolling.ts @@ -296,9 +296,13 @@ export class SwarmPolling { ); } catch (e) { if (e.message === ERROR_CODE_NO_CONNECT) { - window.inboxStore?.dispatch(updateIsOnline(false)); + if (window.inboxStore?.getState().onionPaths.isOnline) { + window.inboxStore?.dispatch(updateIsOnline(false)); + } } else { - window.inboxStore?.dispatch(updateIsOnline(true)); + if (!window.inboxStore?.getState().onionPaths.isOnline) { + window.inboxStore?.dispatch(updateIsOnline(true)); + } } window?.log?.info('pollNodeForKey failed with', e.message); return null;