diff --git a/js/models/messages.js b/js/models/messages.js index aa9132fa3..95f4b0dda 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -872,41 +872,43 @@ // that contact. Otherwise, it will be a standalone entry. const errors = _.reject(allErrors, error => Boolean(error.number)); const errorsGroupedById = _.groupBy(allErrors, 'number'); - const finalContacts = await Promise.all((phoneNumbers || []).map(async id => { - const errorsForContact = errorsGroupedById[id]; - const isOutgoingKeyError = Boolean( - _.find(errorsForContact, error => error.name === OUTGOING_KEY_ERROR) - ); - const isUnidentifiedDelivery = - storage.get('unidentifiedDeliveryIndicators') && - this.isUnidentifiedDelivery(id, unidentifiedLookup); - const primary = await window.libsession.Protocols.MultiDeviceProtocol.getPrimaryDevice( - id - ); - - const isPrimaryDevice = id === primary.key; + const finalContacts = await Promise.all( + (phoneNumbers || []).map(async id => { + const errorsForContact = errorsGroupedById[id]; + const isOutgoingKeyError = Boolean( + _.find(errorsForContact, error => error.name === OUTGOING_KEY_ERROR) + ); + const isUnidentifiedDelivery = + storage.get('unidentifiedDeliveryIndicators') && + this.isUnidentifiedDelivery(id, unidentifiedLookup); + const primary = await window.libsession.Protocols.MultiDeviceProtocol.getPrimaryDevice( + id + ); - const contact = this.findAndFormatContact(id); - const profileName = isPrimaryDevice - ? contact.profileName - : `${contact.profileName} (Secondary Device)`; - return { - ...contact, - status: this.getStatus(id), - errors: errorsForContact, - isOutgoingKeyError, - isUnidentifiedDelivery, - isPrimaryDevice, - profileName, - onSendAnyway: () => - this.trigger('force-send', { - contact: this.findContact(id), - message: this, - }), - onShowSafetyNumber: () => - this.trigger('show-identity', this.findContact(id)), - }; - })); + const isPrimaryDevice = id === primary.key; + + const contact = this.findAndFormatContact(id); + const profileName = isPrimaryDevice + ? contact.profileName + : `${contact.profileName} (Secondary Device)`; + return { + ...contact, + status: this.getStatus(id), + errors: errorsForContact, + isOutgoingKeyError, + isUnidentifiedDelivery, + isPrimaryDevice, + profileName, + onSendAnyway: () => + this.trigger('force-send', { + contact: this.findContact(id), + message: this, + }), + onShowSafetyNumber: () => + this.trigger('show-identity', this.findContact(id)), + }; + }) + ); // The prefix created here ensures that contacts with errors are listed // first; otherwise it's alphabetical diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index 59106847e..097556d16 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -1511,7 +1511,8 @@ onClose, }); - const update = async () => view.update(await message.getPropsForMessageDetail()); + const update = async () => + view.update(await message.getPropsForMessageDetail()); this.listenTo(message, 'change', update); this.listenTo(message, 'expired', onClose); // We could listen to all involved contacts, but we'll call that overkill