Fix management of selectedMessage in redux

This commit is contained in:
Fedor Indutny 2022-06-23 09:12:17 -07:00 committed by GitHub
parent 6ad091bfe3
commit 6b231346d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 15 additions and 15 deletions

View file

@ -359,7 +359,6 @@ const actions = () => ({
), ),
setIsNearBottom: action('setIsNearBottom'), setIsNearBottom: action('setIsNearBottom'),
learnMoreAboutDeliveryIssue: action('learnMoreAboutDeliveryIssue'), learnMoreAboutDeliveryIssue: action('learnMoreAboutDeliveryIssue'),
loadAndScroll: action('loadAndScroll'),
loadOlderMessages: action('loadOlderMessages'), loadOlderMessages: action('loadOlderMessages'),
loadNewerMessages: action('loadNewerMessages'), loadNewerMessages: action('loadNewerMessages'),
loadNewestMessages: action('loadNewestMessages'), loadNewestMessages: action('loadNewestMessages'),

View file

@ -161,7 +161,6 @@ export type PropsActionsType = {
) => void; ) => void;
learnMoreAboutDeliveryIssue: () => unknown; learnMoreAboutDeliveryIssue: () => unknown;
loadAndScroll: (messageId: string) => unknown;
loadOlderMessages: (messageId: string) => unknown; loadOlderMessages: (messageId: string) => unknown;
loadNewerMessages: (messageId: string) => unknown; loadNewerMessages: (messageId: string) => unknown;
loadNewestMessages: (messageId: string, setFocus?: boolean) => unknown; loadNewestMessages: (messageId: string, setFocus?: boolean) => unknown;
@ -220,7 +219,6 @@ const getActions = createSelector(
'reviewGroupMemberNameCollision', 'reviewGroupMemberNameCollision',
'reviewMessageRequestNameCollision', 'reviewMessageRequestNameCollision',
'learnMoreAboutDeliveryIssue', 'learnMoreAboutDeliveryIssue',
'loadAndScroll',
'loadOlderMessages', 'loadOlderMessages',
'loadNewerMessages', 'loadNewerMessages',
'loadNewestMessages', 'loadNewestMessages',

View file

@ -1370,10 +1370,6 @@ export class ConversationModel extends window.Backbone
this.debouncedUpdateLastMessage!(); this.debouncedUpdateLastMessage!();
} }
addIncomingMessage(message: MessageModel): void {
this.addSingleMessage(message);
}
// New messages might arrive while we're in the middle of a bulk fetch from the // New messages might arrive while we're in the middle of a bulk fetch from the
// database. We'll wait until that is done before moving forward. // database. We'll wait until that is done before moving forward.
async addSingleMessage( async addSingleMessage(

View file

@ -1726,6 +1726,14 @@ function messagesReset({
scrollToMessageId, scrollToMessageId,
unboundedFetch, unboundedFetch,
}: MessageResetOptionsType): MessagesResetActionType { }: MessageResetOptionsType): MessagesResetActionType {
for (const message of messages) {
strictAssert(
message.conversationId === conversationId,
`messagesReset(${conversationId}): invalid message conversationId ` +
`${message.conversationId}`
);
}
return { return {
type: 'MESSAGES_RESET', type: 'MESSAGES_RESET',
payload: { payload: {
@ -2625,8 +2633,12 @@ export function reducer(
return { return {
...state, ...state,
...(state.selectedConversationId === conversationId
? {
selectedMessage: scrollToMessageId, selectedMessage: scrollToMessageId,
selectedMessageCounter: state.selectedMessageCounter + 1, selectedMessageCounter: state.selectedMessageCounter + 1,
}
: {}),
messagesLookup: { messagesLookup: {
...messagesLookup, ...messagesLookup,
...lookup, ...lookup,
@ -3035,12 +3047,9 @@ export function reducer(
const nextState = { const nextState = {
...omit(state, 'contactSpoofingReview'), ...omit(state, 'contactSpoofingReview'),
selectedConversationId: id, selectedConversationId: id,
selectedMessage: messageId,
}; };
if (messageId) {
nextState.selectedMessage = messageId;
}
if (switchToAssociatedView && id) { if (switchToAssociatedView && id) {
const conversation = getOwn(state.conversationLookup, id); const conversation = getOwn(state.conversationLookup, id);
if (!conversation) { if (!conversation) {

View file

@ -71,7 +71,6 @@ export type TimelinePropsType = ExternalProps &
| 'downloadNewVersion' | 'downloadNewVersion'
| 'kickOffAttachmentDownload' | 'kickOffAttachmentDownload'
| 'learnMoreAboutDeliveryIssue' | 'learnMoreAboutDeliveryIssue'
| 'loadAndScroll'
| 'loadNewerMessages' | 'loadNewerMessages'
| 'loadNewestMessages' | 'loadNewestMessages'
| 'loadOlderMessages' | 'loadOlderMessages'

View file

@ -509,7 +509,6 @@ export class ConversationView extends window.Backbone.View<ConversationModel> {
learnMoreAboutDeliveryIssue, learnMoreAboutDeliveryIssue,
loadNewerMessages: this.model.loadNewerMessages.bind(this.model), loadNewerMessages: this.model.loadNewerMessages.bind(this.model),
loadNewestMessages: this.model.loadNewestMessages.bind(this.model), loadNewestMessages: this.model.loadNewestMessages.bind(this.model),
loadAndScroll: this.model.loadAndScroll.bind(this.model),
loadOlderMessages: this.model.loadOlderMessages.bind(this.model), loadOlderMessages: this.model.loadOlderMessages.bind(this.model),
markMessageRead, markMessageRead,
onBlock: createMessageRequestResponseHandler( onBlock: createMessageRequestResponseHandler(