From 7cc2f5d70719b093ab5b993f8700eb86a34744f2 Mon Sep 17 00:00:00 2001 From: Maxim Shishmarev Date: Thu, 23 Jan 2020 15:38:57 +1100 Subject: [PATCH] Fix not showing messages from secondary devices --- js/modules/loki_app_dot_net_api.js | 41 +++++++++++++----------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/js/modules/loki_app_dot_net_api.js b/js/modules/loki_app_dot_net_api.js index fe9df64c1..1bd6d6e0f 100644 --- a/js/modules/loki_app_dot_net_api.js +++ b/js/modules/loki_app_dot_net_api.js @@ -1350,7 +1350,10 @@ class LokiPublicChannelAPI { /* eslint-enable no-param-reassign */ // process remaining messages - Object.keys(slaveMessages).forEach(slaveKey => { + slaveMessages.forEach(messageData => { + + const slaveKey = messageData.source; + // prevent our own device sent messages from coming back in if (slaveKey === ourNumber) { // we originally sent these @@ -1360,31 +1363,21 @@ class LokiPublicChannelAPI { // look up primary device once const primaryPubKey = slavePrimaryMap[slaveKey]; - if (!Array.isArray(slaveMessages[slaveKey])) { - log.warn( - `messages for ${slaveKey} is not an array`, - slaveMessages[slaveKey] - ); - return; - } - // send out remaining messages for this merged identity - slaveMessages[slaveKey].forEach(messageDataP => { - const messageData = messageDataP; // for linter - if (slavePrimaryMap[messageData.source]) { - // rewrite source, profile - messageData.source = primaryPubKey; - const { name, avatar, profileKey } = this.primaryUserProfileName[ - primaryPubKey - ]; - messageData.message.profile.displayName = name; - messageData.message.profile.avatar = avatar; - messageData.message.profileKey = profileKey; - } - this.chatAPI.emit('publicMessage', { - message: messageData, - }); + if (slavePrimaryMap[slaveKey]) { + // rewrite source, profile + messageData.source = primaryPubKey; + const { name, avatar, profileKey } = this.primaryUserProfileName[ + primaryPubKey + ]; + messageData.message.profile.displayName = name; + messageData.message.profile.avatar = avatar; + messageData.message.profileKey = profileKey; + } + this.chatAPI.emit('publicMessage', { + message: messageData, }); + }); // if we received one of our own messages