fix: trigger expiry for outgoing sync messages

pull/2971/head
William Grant 2 years ago
parent 60aac9be85
commit 631c677a24

@ -521,7 +521,7 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
const expirationLength = this.get('expireTimer') * DURATION.SECONDS;
const expireTimerStart = this.get('expirationStartTimestamp');
const expirationTimestamp =
expirationType && expirationLength && expireTimerStart
expirationType && expireTimerStart && expirationLength
? expireTimerStart + expirationLength
: null;
@ -1170,13 +1170,14 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
await this.commit();
}
window?.log?.debug('Set message expiration', {
window?.log?.debug('WIP: Set message expiration', {
expiresAt,
sentAt: this.get('sent_at'),
});
const messageHash = this.get('messageHash');
if (messageHash) {
// TODO Consolidate the snode /expire logic across all the different functions that call it.
await expireMessageOnSnode({
messageHash,
expireTimer: this.get('expireTimer'),

@ -80,7 +80,7 @@ function getSharedAttributesForPublicMessage({
isPublic: true,
conversationId,
messageHash: '', // we do not care of a messageHash for an opengroup message. we have serverId for that
// TODO do we need to worry about this?
// Note Community messages do not have an expiration
expirationStartTimestamp: undefined,
};
}

@ -359,12 +359,42 @@ async function handleRegularMessage(
});
}
function markConvoAsReadIfOutgoingMessage(conversation: ConversationModel, message: MessageModel) {
async function markConvoAsReadIfOutgoingMessage(
conversation: ConversationModel,
message: MessageModel
) {
const isOutgoingMessage =
message.get('type') === 'outgoing' || message.get('direction') === 'outgoing';
if (isOutgoingMessage) {
const sentAt = message.get('sent_at') || message.get('serverTimestamp');
if (sentAt) {
const expirationType = message.get('expirationType');
const expireTimer = message.get('expireTimer');
// NOTE starting disappearing messages timer for all outbound messages
if (
expirationType &&
expireTimer > 0 &&
Boolean(message.get('expirationStartTimestamp')) === false
) {
const expirationMode = changeToDisappearingMessageConversationType(
conversation,
expirationType,
expireTimer
);
if (expirationMode !== 'off') {
window.log.debug(
`WIP: markConvoAsReadIfOutgoingMessage setExpirationStartTimestamp is starting`
);
message.set({
expirationStartTimestamp: setExpirationStartTimestamp(
expirationMode,
message.get('sent_at')
),
});
await message.commit();
}
}
conversation.markConversationRead(sentAt);
}
}
@ -522,7 +552,7 @@ export async function handleMessageJob(
);
}
markConvoAsReadIfOutgoingMessage(conversation, messageModel);
await markConvoAsReadIfOutgoingMessage(conversation, messageModel);
if (messageModel.get('unread')) {
conversation.throttledNotify(messageModel);
}

Loading…
Cancel
Save