Save source of selectedMessage changes to prevent unnecessary scrolls

This commit is contained in:
Scott Nonnenberg 2022-11-09 12:18:03 -08:00 committed by GitHub
parent d00898fdfc
commit 4fa614e1d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 3 deletions

View file

@ -15,6 +15,7 @@ import { ToastStickerPackInstallFailed } from './ToastStickerPackInstallFailed';
import { WhatsNewLink } from './WhatsNewLink';
import { showToast } from '../util/showToast';
import { strictAssert } from '../util/assert';
import { SelectedMessageSource } from '../state/ducks/conversationsEnums';
export type PropsType = {
hasInitialLoadCompleted: boolean;
@ -24,6 +25,7 @@ export type PropsType = {
renderLeftPane: () => JSX.Element;
selectedConversationId?: string;
selectedMessage?: string;
selectedMessageSource?: SelectedMessageSource;
showConversation: ShowConversationType;
showWhatsNewModal: () => unknown;
};
@ -36,6 +38,7 @@ export const Inbox = ({
renderLeftPane,
selectedConversationId,
selectedMessage,
selectedMessageSource,
showConversation,
showWhatsNewModal,
}: PropsType): JSX.Element => {
@ -86,13 +89,21 @@ export const Inbox = ({
setPrevConversation(conversation);
conversation.trigger('opened', selectedMessage);
} else if (selectedMessage) {
} else if (
selectedMessage &&
selectedMessageSource !== SelectedMessageSource.Focus
) {
conversation.trigger('scroll-to-message', selectedMessage);
}
// Make sure poppers are positioned properly
window.dispatchEvent(new Event('resize'));
}, [prevConversation, selectedConversationId, selectedMessage]);
}, [
prevConversation,
selectedConversationId,
selectedMessage,
selectedMessageSource,
]);
// Whenever the selectedConversationId is cleared we should also ensure
// that prevConversation is cleared too.