diff --git a/js/index.js b/js/index.js index e5a418729..6604221f7 100644 --- a/js/index.js +++ b/js/index.js @@ -22,7 +22,7 @@ if (textsecure.storage.getUnencrypted("number_id") === undefined) { window.location = '/options.html'; } else { - Whisper.Layout = new Whisper.InboxView({el: document}); + new Whisper.InboxView({el: document}); textsecure.storage.putUnencrypted("unreadCount", 0); extension.navigator.setBadgeText(""); } diff --git a/js/views/conversation_list_item_view.js b/js/views/conversation_list_item_view.js index a27ffd784..95e58757b 100644 --- a/js/views/conversation_list_item_view.js +++ b/js/views/conversation_list_item_view.js @@ -20,14 +20,14 @@ var Whisper = Whisper || {}; }, open: function(e) { - $('.conversation').trigger('close'); // detach any existing conversation views + this.$el.addClass('selected'); + if (!this.view) { this.view = new Whisper.ConversationView({ model: this.model }); } else { this.view.delegateEvents(); } - this.view.render(); - this.$el.addClass('selected'); + this.model.collection.trigger('selected', this.view); }, render: function() { diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index f3696e882..ad4e1192c 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -57,7 +57,6 @@ }, render: function() { - Whisper.Layout.setContent(this.$el.show()); this.view.scrollToBottom(); return this; } diff --git a/js/views/inbox_view.js b/js/views/inbox_view.js index b30b25268..9ed424922 100644 --- a/js/views/inbox_view.js +++ b/js/views/inbox_view.js @@ -44,6 +44,11 @@ }.bind(this)); }.bind(this)); + this.conversations.on('selected', function(view) { + $('.conversation').hide().trigger('close'); // detach any existing conversation views + this.setContent(view.$el.show()); + view.render(); + }, this); }, events: { 'click #new-message': 'new_message',