getConversationForTargetMessage: Search in-memory messages first

This commit is contained in:
Scott Nonnenberg
2026-06-03 23:51:26 +10:00
committed by GitHub
parent f00b79e3e2
commit 866ca8e830
2 changed files with 18 additions and 18 deletions
+6 -4
View File
@@ -156,7 +156,7 @@ async function safeCombineConversations(
const MAX_MESSAGE_BODY_LENGTH = 64 * 1024;
const { getAllConversations, getMessagesBySentAt } = DataReader;
const { getAllConversations } = DataReader;
const {
migrateConversationMessages,
@@ -1519,11 +1519,13 @@ export class ConversationController {
targetFromId: string,
targetTimestamp: number
): Promise<ConversationModel | null | undefined> {
const messages = await getMessagesBySentAt(targetTimestamp);
const targetMessage = messages.find(m => getAuthorId(m) === targetFromId);
const targetMessage = await window.MessageCache.findBySentAt(
targetTimestamp,
m => getAuthorId(m.attributes) === targetFromId
);
if (targetMessage) {
return this.get(targetMessage.conversationId);
return this.get(targetMessage.get('conversationId'));
}
return null;
+12 -14
View File
@@ -203,9 +203,9 @@ export async function handleEditMessage(
bodyAttachment: editedMessage.bodyAttachment,
bodyRanges: editedMessage.bodyRanges,
editHistory,
editMessageTimestamp: upgradedEditedMessageData.timestamp,
editMessageReceivedAt: upgradedEditedMessageData.received_at,
editMessageReceivedAtMs: upgradedEditedMessageData.received_at_ms,
editMessageTimestamp: editedMessage.timestamp,
editMessageReceivedAt: editedMessage.received_at,
editMessageReceivedAtMs: editedMessage.received_at_ms,
preview: editedMessage.preview,
quote: editedMessage.quote,
});
@@ -271,17 +271,15 @@ export async function handleEditMessage(
: ReadStatus.Unread;
// Save both the main message and the edited message for fast lookups
drop(
DataWriter.saveEditedMessage(
mainMessageModel.attributes,
itemStorage.user.getCheckedAci(),
{
conversationId: editAttributes.conversationId,
messageId: mainMessage.id,
readStatus,
sentAt: upgradedEditedMessageData.timestamp,
}
)
await DataWriter.saveEditedMessage(
mainMessageModel.attributes,
itemStorage.user.getCheckedAci(),
{
conversationId: editAttributes.conversationId,
messageId: mainMessage.id,
readStatus,
sentAt: upgradedEditedMessageData.timestamp,
}
);
if (conversation) {