diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index 41ed7c6bd..51914325f 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -1275,8 +1275,12 @@ className: 'lightbox-wrapper', Component: Signal.Components.Lightbox, props, - onClose: () => Signal.Backbone.Views.Lightbox.hide(), + onClose: () => { + Signal.Backbone.Views.Lightbox.hide(); + this.stopListening(message); + }, }); + this.listenTo(message, 'expired', () => this.lightboxView.remove()); Signal.Backbone.Views.Lightbox.show(this.lightboxView.el); return; } @@ -1304,8 +1308,14 @@ className: 'lightbox-wrapper', Component: Signal.Components.LightboxGallery, props, - onClose: () => Signal.Backbone.Views.Lightbox.hide(), + onClose: () => { + Signal.Backbone.Views.Lightbox.hide(); + this.stopListening(message); + }, }); + this.listenTo(message, 'expired', () => + this.lightboxGalleryView.remove() + ); Signal.Backbone.Views.Lightbox.show(this.lightboxGalleryView.el); }, diff --git a/js/views/react_wrapper_view.js b/js/views/react_wrapper_view.js index d335d38aa..a5a5ccaa8 100644 --- a/js/views/react_wrapper_view.js +++ b/js/views/react_wrapper_view.js @@ -53,16 +53,15 @@ augmentProps(props) { return Object.assign({}, props, { close: () => { - if (this.onClose) { - this.onClose(); - return; - } this.remove(); }, i18n, }); }, remove() { + if (this.onClose) { + this.onClose(); + } ReactDOM.unmountComponentAtNode(this.el); Backbone.View.prototype.remove.call(this); },