From 78ecefa696503b85f8587e36801f1cff58d2709a Mon Sep 17 00:00:00 2001 From: William Grant Date: Wed, 25 Oct 2023 10:22:17 +0200 Subject: [PATCH] fix: off control msgs expire on the last setting --- ts/models/conversation.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts index 527d19549..a1007a3d1 100644 --- a/ts/models/conversation.ts +++ b/ts/models/conversation.ts @@ -876,6 +876,15 @@ export class ConversationModel extends Backbone.Model { // to be above the message that initiated that change, hence the subtraction. const timestamp = (receivedAt || Date.now()) - 1; + // NOTE if we turn off disappearing messages we want the control message to expire based on the last available setting + const oldExpirationMode = this.getExpirationMode(); + const oldExpireTimer = this.getExpireTimer(); + const oldExpirationType = DisappearingMessages.changeToDisappearingMessageType( + this, + oldExpireTimer, + oldExpirationMode + ); + this.set({ expirationMode, expireTimer, @@ -898,8 +907,8 @@ export class ConversationModel extends Backbone.Model { source, fromSync, }, - expirationType, - expireTimer, + expirationType: expireTimer === 0 ? oldExpirationType : expirationType, + expireTimer: expireTimer === 0 ? oldExpireTimer : expireTimer, }; if (!message) {