Fix send sync message bugs

This commit is contained in:
Evan Hahn 2021-07-28 13:53:18 -05:00 committed by GitHub
parent 4b92e12f83
commit 8449f343a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 59 deletions

View file

@ -3212,7 +3212,7 @@ export async function startApp(): Promise<void> {
return {
...result,
[conversationId]: {
status: SendStatus.Pending,
status: SendStatus.Sent,
updatedAt: timestamp,
},
};

View file

@ -13,7 +13,11 @@ import { isOutgoing } from '../state/selectors/message';
import { isDirectConversation } from '../util/whatTypeOfConversation';
import { getOwn } from '../util/getOwn';
import { missingCaseError } from '../util/missingCaseError';
import { SendActionType, sendStateReducer } from '../messages/MessageSendState';
import {
SendActionType,
SendStatus,
sendStateReducer,
} from '../messages/MessageSendState';
import dataInterface from '../sql/Client';
const { deleteSentProtoRecipient } = dataInterface;
@ -107,7 +111,7 @@ export class MessageReceipts extends Collection<MessageReceiptModel> {
ids.includes(receipt.get('sourceConversationId'))
);
if (receipts.length) {
window.log.info('Found early read receipts for message');
window.log.info('Found early receipts for message');
this.remove(receipts);
}
return receipts;
@ -142,8 +146,8 @@ export class MessageReceipts extends Collection<MessageReceiptModel> {
const oldSendState = getOwn(
oldSendStateByConversationId,
sourceConversationId
);
if (oldSendState) {
) ?? { status: SendStatus.Sent, updatedAt: undefined };
let sendActionType: SendActionType;
switch (type) {
case MessageReceiptType.Delivery:
@ -185,15 +189,6 @@ export class MessageReceipts extends Collection<MessageReceiptModel> {
updateLeftPane();
}
}
} else {
window.log.warn(
`Got a receipt from someone (${sourceConversationId}), but the message (sent at ${message.get(
'sent_at'
)}) wasn't sent to them. It was sent to ${
Object.keys(oldSendStateByConversationId).length
} recipients`
);
}
if (
(type === MessageReceiptType.Delivery &&

View file

@ -2579,20 +2579,25 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
return;
}
const updatedAt: number = isNormalNumber(data.timestamp)
? data.timestamp
: Date.now();
const previousSendState = getOwn(
sendStateByConversationId,
destinationConversationId
);
if (previousSendState) {
sendStateByConversationId[
destinationConversationId
] = sendStateReducer(previousSendState, {
] = previousSendState
? sendStateReducer(previousSendState, {
type: SendActionType.Sent,
updatedAt: isNormalNumber(data.timestamp)
? data.timestamp
: Date.now(),
});
}
updatedAt,
})
: {
status: SendStatus.Sent,
updatedAt,
};
if (unidentified) {
unidentifiedDeliveriesSet.add(identifier);