diff --git a/ts/services/expiringMessagesDeletion.ts b/ts/services/expiringMessagesDeletion.ts index d83c8fc721..8d33b0db90 100644 --- a/ts/services/expiringMessagesDeletion.ts +++ b/ts/services/expiringMessagesDeletion.ts @@ -52,6 +52,10 @@ class ExpiringMessagesDeletionService { }); const conversation = message.getConversation(); + + // We do this to update the UI, if this message is being displayed somewhere + message.trigger('expired'); + if (conversation) { // An expired message only counts as decrementing the message count, not // the sent message count diff --git a/ts/services/tapToViewMessagesDeletionService.ts b/ts/services/tapToViewMessagesDeletionService.ts index e96845578c..6e147c34b4 100644 --- a/ts/services/tapToViewMessagesDeletionService.ts +++ b/ts/services/tapToViewMessagesDeletionService.ts @@ -21,6 +21,9 @@ async function eraseTapToViewMessages() { message.idForLogging() ); + // We do this to update the UI, if this message is being displayed somewhere + message.trigger('expired'); + await message.eraseContents(); }) ); diff --git a/ts/views/conversation_view.tsx b/ts/views/conversation_view.tsx index 281581740f..47592e179b 100644 --- a/ts/views/conversation_view.tsx +++ b/ts/views/conversation_view.tsx @@ -115,11 +115,7 @@ import { suspendLinkPreviews, } from '../services/LinkPreview'; import { LinkPreviewSourceType } from '../types/LinkPreview'; -import { - closeLightbox, - isLightboxOpen, - showLightbox, -} from '../util/showLightbox'; +import { closeLightbox, showLightbox } from '../util/showLightbox'; type AttachmentOptions = { messageId: string; @@ -1894,21 +1890,16 @@ export class ConversationView extends window.Backbone.View { await message.markViewOnceMessageViewed(); - this.listenTo(message, 'expired', async () => { - log.info('displayTapToViewMessage: attempting to close lightbox'); - - // This isn't really a bullet-proof check because the lightbox could - // be open while we're viewing a regular media message - if (!isLightboxOpen()) { - log.info('displayTapToViewMessage: lightbox was already closed'); - return; + const close = (): void => { + try { + this.stopListening(message); + closeLightbox(); + } finally { + deleteTempFile(tempPath); } + }; - this.stopListening(message); - closeLightbox(); - - await deleteTempFile(tempPath); - }); + this.listenTo(message, 'expired', close); this.listenTo(message, 'change', () => { showLightbox(getProps()); }); @@ -1917,9 +1908,7 @@ export class ConversationView extends window.Backbone.View { const { path, contentType } = tempAttachment; return { - close: () => { - closeLightbox(); - }, + close, i18n: window.i18n, media: [ {