From 7ec27f814f17783958ee5239c7fe8e008c478cd2 Mon Sep 17 00:00:00 2001 From: Riley Shaw Date: Fri, 16 Jan 2015 11:40:17 -1000 Subject: [PATCH] Get conversations loading through localStorage --- js/background.js | 3 +++ js/conversation_panel.js | 34 +++++++++++++------------ js/views/conversation_list_item_view.js | 12 +++++---- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/js/background.js b/js/background.js index 1ab2e5edd..b91f8c456 100644 --- a/js/background.js +++ b/js/background.js @@ -222,4 +222,7 @@ console.log('got delivery receipt for unknown message', pushMessage.source, timestamp); }); }; + + extension.on('log', console.log.bind(console)); + })(); diff --git a/js/conversation_panel.js b/js/conversation_panel.js index 5d28581fa..56feab887 100644 --- a/js/conversation_panel.js +++ b/js/conversation_panel.js @@ -24,31 +24,33 @@ conversation.fetch().then(function () { new Whisper.ConversationView({ model: conversation}).render().$el.appendTo($('#conversation-container')); }); - - // clean 'er up - conversationInfo = undefined; }; - var conversationInfo = { - id: '', - idPairs: {} - }; + var windowId, windowMap = {}; + + extension.trigger('log', 'loaded page'); - extension.on('loadConversation', function (message) { - debugger; - if (conversationInfo.id) { - if (message.windowId === conversationInfo.id) { - loadConversation(message.conversationId); + window.addEventListener('storage', function (e) { + extension.trigger('log', 'got storage event'); + if (e.key = 'idPairs') { + windowMap = JSON.parse(e.newValue); + + if (windowId) { + var conversationId = windowMap[windowId]; + + if (conversationId) { + loadConversation(conversationId); + } } - } else { - conversationInfo.idPairs[message.windowId] = message.conversationId; } }); chrome.windows.getCurrent(function (windowInfo) { - window.document.title = conversationInfo.id = windowInfo.id; + window.document.title = windowId = windowInfo.id; + + extension.trigger('log', 'got page id'); - var conversationId = conversationInfo.idPairs[conversationInfo.id]; + var conversationId = windowMap[windowId]; if (typeof conversationId !== 'undefined') { loadConversation(conversationId); diff --git a/js/views/conversation_list_item_view.js b/js/views/conversation_list_item_view.js index 0107c050d..d527a3907 100644 --- a/js/views/conversation_list_item_view.js +++ b/js/views/conversation_list_item_view.js @@ -52,11 +52,13 @@ var Whisper = Whisper || {}; width: 280, height: 420 }, function (windowInfo) { - debugger; - extension.trigger('loadConversation', { - windowId: windowInfo.id, - conversationId: modelId - }); + extension.trigger('log', 'maybe up here?'); + extension.trigger('log', localStorage.getItem('idPairs')); + + var idPairs = JSON.parse(localStorage.getItem('idPairs') || '{}'); + idPairs[windowInfo.id] = modelId; + localStorage.setItem('idPairs', JSON.stringify(idPairs)); + extension.trigger('log', 'set idPairs item'); }); this.model.collection.trigger('selected', this.view);