sendSyncMessage: Check timestamp, don't check sent status
This commit is contained in:
parent
09ec45a125
commit
c3a4a0bb31
2 changed files with 11 additions and 25 deletions
|
@ -155,11 +155,8 @@ import { getSenderIdentifier } from '../util/getSenderIdentifier';
|
||||||
import { getNotificationDataForMessage } from '../util/getNotificationDataForMessage';
|
import { getNotificationDataForMessage } from '../util/getNotificationDataForMessage';
|
||||||
import { getNotificationTextForMessage } from '../util/getNotificationTextForMessage';
|
import { getNotificationTextForMessage } from '../util/getNotificationTextForMessage';
|
||||||
import { getMessageAuthorText } from '../util/getMessageAuthorText';
|
import { getMessageAuthorText } from '../util/getMessageAuthorText';
|
||||||
import {
|
import { getPropForTimestamp, setPropForTimestamp } from '../util/editHelpers';
|
||||||
getPropForTimestamp,
|
import { getMessageSentTimestamp } from '../util/getMessageSentTimestamp';
|
||||||
setPropForTimestamp,
|
|
||||||
hasEditBeenSent,
|
|
||||||
} from '../util/editHelpers';
|
|
||||||
|
|
||||||
/* eslint-disable more/no-then */
|
/* eslint-disable more/no-then */
|
||||||
|
|
||||||
|
@ -1228,8 +1225,14 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
||||||
if (!dataMessage) {
|
if (!dataMessage) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const wasEditSent = hasEditBeenSent(this);
|
|
||||||
const isUpdate = Boolean(this.get('synced')) && !wasEditSent;
|
const originalTimestamp = getMessageSentTimestamp(this.attributes, {
|
||||||
|
includeEdits: false,
|
||||||
|
log,
|
||||||
|
});
|
||||||
|
const isSendingEdit = targetTimestamp !== originalTimestamp;
|
||||||
|
|
||||||
|
const isUpdate = Boolean(this.get('synced')) && !isSendingEdit;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
const conv = this.getConversation()!;
|
const conv = this.getConversation()!;
|
||||||
|
|
||||||
|
@ -1261,7 +1264,7 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
||||||
map(conversationsWithSealedSender, c => c.id)
|
map(conversationsWithSealedSender, c => c.id)
|
||||||
);
|
);
|
||||||
|
|
||||||
const encodedContent = wasEditSent
|
const encodedContent = isSendingEdit
|
||||||
? {
|
? {
|
||||||
encodedEditMessage: dataMessage,
|
encodedEditMessage: dataMessage,
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,28 +4,11 @@
|
||||||
import { isNumber, sortBy } from 'lodash';
|
import { isNumber, sortBy } from 'lodash';
|
||||||
|
|
||||||
import { strictAssert } from './assert';
|
import { strictAssert } from './assert';
|
||||||
import { isSent } from '../messages/MessageSendState';
|
|
||||||
|
|
||||||
import type { EditHistoryType } from '../model-types';
|
import type { EditHistoryType } from '../model-types';
|
||||||
import type { MessageModel } from '../models/messages';
|
import type { MessageModel } from '../models/messages';
|
||||||
import type { LoggerType } from '../types/Logging';
|
import type { LoggerType } from '../types/Logging';
|
||||||
|
|
||||||
export function hasEditBeenSent(message: MessageModel): boolean {
|
|
||||||
const originalTimestamp = message.get('timestamp');
|
|
||||||
const editHistory = message.get('editHistory') || [];
|
|
||||||
|
|
||||||
return Boolean(
|
|
||||||
editHistory.find(item => {
|
|
||||||
if (item.timestamp === originalTimestamp) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return Object.values(item.sendStateByConversationId || {}).some(
|
|
||||||
sendState => isSent(sendState.status)
|
|
||||||
);
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// The tricky bit for this function is if we are on our second+ attempt to send a given
|
// The tricky bit for this function is if we are on our second+ attempt to send a given
|
||||||
// edit, we're still sending that edit.
|
// edit, we're still sending that edit.
|
||||||
export function getTargetOfThisEditTimestamp({
|
export function getTargetOfThisEditTimestamp({
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue