From cad9803d386d38376b22d731bc5d30a24c0f7987 Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Thu, 10 Sep 2020 14:04:45 -0700 Subject: [PATCH] GroupsV2: Use both sent_at and received_at when processing changes --- js/models/messages.js | 3 ++- ts/groups.ts | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/js/models/messages.js b/js/models/messages.js index 59a437daf7e..a456de47894 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -2463,7 +2463,8 @@ conversation, groupChangeBase64: groupChange, newRevision: revision, - timestamp: message.get('received_at'), + receivedAt: message.get('received_at'), + sentAt: message.get('sent_at'), }); } catch (error) { const errorText = error && error.stack ? error.stack : error; diff --git a/ts/groups.ts b/ts/groups.ts index 70b0ab2f492..89580114471 100644 --- a/ts/groups.ts +++ b/ts/groups.ts @@ -268,7 +268,8 @@ type MaybeUpdatePropsType = { conversation: ConversationModelType; groupChangeBase64?: string; newRevision?: number; - timestamp?: number; + receivedAt?: number; + sentAt?: number; dropInitialJoinMessage?: boolean; }; @@ -294,10 +295,11 @@ export async function waitThenMaybeUpdateGroup(options: MaybeUpdatePropsType) { export async function maybeUpdateGroup({ conversation, + dropInitialJoinMessage, groupChangeBase64, newRevision, - timestamp, - dropInitialJoinMessage, + receivedAt, + sentAt, }: MaybeUpdatePropsType) { const logId = conversation.idForLogging(); @@ -321,8 +323,8 @@ export async function maybeUpdateGroup({ // Ensure that all generated message are ordered properly. Before the provided timestamp // so update messages appear before the initiating message, or after now(). - let syntheticTimestamp = timestamp - ? timestamp - (groupChangeMessages.length + 1) + let syntheticTimestamp = receivedAt + ? receivedAt - (groupChangeMessages.length + 1) : Date.now(); // Save all synthetic messages describing group changes const changeMessagesToSave = groupChangeMessages.map(changeMessage => { @@ -333,6 +335,7 @@ export async function maybeUpdateGroup({ ...changeMessage, conversationId: conversation.id, received_at: syntheticTimestamp, + sent_at: sentAt, }; });