Fix management of selectedMessage in redux
This commit is contained in:
parent
6ad091bfe3
commit
6b231346d9
6 changed files with 15 additions and 15 deletions
|
@ -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'),
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -71,7 +71,6 @@ export type TimelinePropsType = ExternalProps &
|
||||||
| 'downloadNewVersion'
|
| 'downloadNewVersion'
|
||||||
| 'kickOffAttachmentDownload'
|
| 'kickOffAttachmentDownload'
|
||||||
| 'learnMoreAboutDeliveryIssue'
|
| 'learnMoreAboutDeliveryIssue'
|
||||||
| 'loadAndScroll'
|
|
||||||
| 'loadNewerMessages'
|
| 'loadNewerMessages'
|
||||||
| 'loadNewestMessages'
|
| 'loadNewestMessages'
|
||||||
| 'loadOlderMessages'
|
| 'loadOlderMessages'
|
||||||
|
|
|
@ -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(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue