From cb4fac7bb4708b9d4d259233b462a4c8c164cd39 Mon Sep 17 00:00:00 2001 From: Jamie <113370520+jamiebuilds-signal@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:17:36 -0700 Subject: [PATCH] Fix highlight when scrolling to unloaded pinned message --- ts/models/conversations.preload.ts | 7 ++++++- ts/state/ducks/conversations.preload.ts | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ts/models/conversations.preload.ts b/ts/models/conversations.preload.ts index c71f9a6109..c7074e2f7e 100644 --- a/ts/models/conversations.preload.ts +++ b/ts/models/conversations.preload.ts @@ -2001,7 +2001,11 @@ export class ConversationModel { async loadAndScroll( messageId: string, - options: { disableScroll?: boolean; onFinish?: () => void } = {} + options: { + disableScroll?: boolean; + onFinish?: () => void; + shouldHighlight?: boolean; + } = {} ): Promise { const { messagesReset, setMessageLoadingState } = window.reduxActions.conversations; @@ -2051,6 +2055,7 @@ export class ConversationModel { metrics, pinnedMessagesPreloadData, scrollToMessageId, + shouldHighlight: options.shouldHighlight, }); } catch (error) { setMessageLoadingState(conversationId, undefined); diff --git a/ts/state/ducks/conversations.preload.ts b/ts/state/ducks/conversations.preload.ts index a302656e26..0357a166d7 100644 --- a/ts/state/ducks/conversations.preload.ts +++ b/ts/state/ducks/conversations.preload.ts @@ -534,6 +534,7 @@ export type ConversationPreloadDataType = ReadonlyDeep<{ export type MessagesResetDataType = ReadonlyDeep< ConversationPreloadDataType & { scrollToMessageId?: string; + shouldHighlight?: boolean; selectedConversationId: string | undefined; } >; @@ -3433,6 +3434,7 @@ function messagesReset({ metrics, pinnedMessagesPreloadData, scrollToMessageId, + shouldHighlight, unboundedFetch, }: MessagesResetOptionsType): ThunkAction< void, @@ -3460,6 +3462,7 @@ function messagesReset({ pinnedMessagesPreloadData, selectedConversationId, scrollToMessageId, + shouldHighlight, }, }); }; @@ -4459,7 +4462,7 @@ export function scrollToMessage( return; } - drop(conversation.loadAndScroll(messageId)); + drop(conversation.loadAndScroll(messageId, { shouldHighlight: true })); }; } @@ -5599,6 +5602,7 @@ function updateMessageLookup( metrics, selectedConversationId, scrollToMessageId, + shouldHighlight, unboundedFetch, pinnedMessagesPreloadData, }: MessagesResetDataType @@ -5648,7 +5652,9 @@ function updateMessageLookup( ? { targetedMessage: scrollToMessageId, targetedMessageCounter: state.targetedMessageCounter + 1, - targetedMessageSource: TargetedMessageSource.Reset, + targetedMessageSource: shouldHighlight + ? TargetedMessageSource.NavigateToMessage + : TargetedMessageSource.Reset, } : {}), messagesLookup: {