diff --git a/internal_packages/unread-notifications/lib/main.es6 b/internal_packages/unread-notifications/lib/main.es6 index 7a48cc6e3..39111749c 100644 --- a/internal_packages/unread-notifications/lib/main.es6 +++ b/internal_packages/unread-notifications/lib/main.es6 @@ -58,17 +58,11 @@ export class Notifier { NylasEnv.displayWindow() } - const currentCategories = FocusedPerspectiveStore.current().categories(); - const desiredCategory = thread.categoryNamed('inbox'); - - if (!desiredCategory) { - return; - } - if (!_.pluck(currentCategories, 'id').includes(desiredCategory.id)) { - const filter = MailboxPerspective.forCategory(desiredCategory); - Actions.focusMailboxPerspective(filter); - } - Actions.setFocus({collection: 'thread', item: thread}); + Actions.setFocus({ + collection: 'thread', + item: thread, + desiredCategoryName: 'inbox', + }); }, }); } diff --git a/src/flux/stores/focused-content-store.coffee b/src/flux/stores/focused-content-store.coffee index 4fe6198c6..a615bd359 100644 --- a/src/flux/stores/focused-content-store.coffee +++ b/src/flux/stores/focused-content-store.coffee @@ -3,6 +3,8 @@ Reflux = require 'reflux' AccountStore = require './account-store' WorkspaceStore = require './workspace-store' DatabaseStore = require './database-store' +FocusedPerspectiveStore = require './focused-perspective-store' +MailboxPerspective = require '../../mailbox-perspective' Actions = require '../actions' Thread = require('../models/thread').default Model = require '../models/model' @@ -90,11 +92,20 @@ class FocusedContentStore @_keyboardCursor[collection] = item @triggerAfterAnimationFrame({ impactsCollection: (c) -> c is collection }) - _onFocus: ({collection, item, usingClick}) => + _onFocus: ({collection, item, usingClick, desiredCategoryName}) => throw new Error("focus() requires a Model or null") if item and not (item instanceof Model) throw new Error("focus() requires a collection") unless collection return if @_focused[collection]?.id is item?.id + if desiredCategoryName + currentCategories = FocusedPerspectiveStore.current().categories() + desiredCategory = item.categoryNamed(desiredCategoryName) + + if desiredCategory + unless desiredCategory.id in _.pluck(currentCategories, 'id') + filter = MailboxPerspective.forCategory(desiredCategory) + Actions.focusMailboxPerspective(filter) + @_focused[collection] = item @_focusedUsingClick[collection] = usingClick @_keyboardCursor[collection] = item if item diff --git a/src/pro b/src/pro index 8a3b33001..5abcef20c 160000 --- a/src/pro +++ b/src/pro @@ -1 +1 @@ -Subproject commit 8a3b33001749f74933bff9d800080279935cb768 +Subproject commit 5abcef20c3738e710ad3a61f36efe83e905ff8d0