From a03aab14cbb7a0b054d9926f1f5967d1cfc2a36f Mon Sep 17 00:00:00 2001 From: trevor-signal <131492920+trevor-signal@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:04:08 -0500 Subject: [PATCH] Grab most recent attributes when saving messages in batchers --- ts/util/messageBatcher.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ts/util/messageBatcher.ts b/ts/util/messageBatcher.ts index 52dd90ce2e2..9d2e1cf7426 100644 --- a/ts/util/messageBatcher.ts +++ b/ts/util/messageBatcher.ts @@ -12,7 +12,13 @@ const updateMessageBatcher = createBatcher<MessageAttributesType>({ maxSize: 50, processBatch: async (messageAttrs: Array<MessageAttributesType>) => { log.info('updateMessageBatcher', messageAttrs.length); - await window.Signal.Data.saveMessages(messageAttrs, { + + // Grab the latest from the cache in case they've changed + const messagesToSave = messageAttrs.map( + message => window.MessageCache.accessAttributes(message.id) ?? message + ); + + await window.Signal.Data.saveMessages(messagesToSave, { ourAci: window.textsecure.storage.user.getCheckedAci(), }); }, @@ -40,7 +46,13 @@ export const saveNewMessageBatcher = createWaitBatcher<MessageAttributesType>({ maxSize: 30, processBatch: async (messageAttrs: Array<MessageAttributesType>) => { log.info('saveNewMessageBatcher', messageAttrs.length); - await window.Signal.Data.saveMessages(messageAttrs, { + + // Grab the latest from the cache in case they've changed + const messagesToSave = messageAttrs.map( + message => window.MessageCache.accessAttributes(message.id) ?? message + ); + + await window.Signal.Data.saveMessages(messagesToSave, { forceSave: true, ourAci: window.textsecure.storage.user.getCheckedAci(), });