diff --git a/internal_packages/attachments/package.json b/internal_packages/attachments/package.json index 42c35c833..5dfb572ba 100644 --- a/internal_packages/attachments/package.json +++ b/internal_packages/attachments/package.json @@ -13,6 +13,7 @@ "windowTypes": { "default": true, "composer": true, - "composer-preload": true + "composer-preload": true, + "thread-popout": true } } diff --git a/internal_packages/composer-emoji/package.json b/internal_packages/composer-emoji/package.json index a17c322c9..4cdf994d9 100644 --- a/internal_packages/composer-emoji/package.json +++ b/internal_packages/composer-emoji/package.json @@ -21,7 +21,8 @@ }, "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true }, "license": "GPL-3.0" } diff --git a/internal_packages/composer-markdown/package.json b/internal_packages/composer-markdown/package.json index d2471cd55..14a597e0f 100644 --- a/internal_packages/composer-markdown/package.json +++ b/internal_packages/composer-markdown/package.json @@ -16,7 +16,8 @@ }, "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true }, "dependencies": { "marked": "^0.3", diff --git a/internal_packages/composer-signature/package.json b/internal_packages/composer-signature/package.json index be75f2ba1..045b0da8c 100755 --- a/internal_packages/composer-signature/package.json +++ b/internal_packages/composer-signature/package.json @@ -10,7 +10,8 @@ }, "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true }, "dependencies": { } diff --git a/internal_packages/composer-spellcheck/package.json b/internal_packages/composer-spellcheck/package.json index 834087dc4..546255970 100755 --- a/internal_packages/composer-spellcheck/package.json +++ b/internal_packages/composer-spellcheck/package.json @@ -10,7 +10,8 @@ }, "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true }, "dependencies": { } diff --git a/internal_packages/composer-templates/package.json b/internal_packages/composer-templates/package.json index 99bfb2a07..6e2067772 100755 --- a/internal_packages/composer-templates/package.json +++ b/internal_packages/composer-templates/package.json @@ -16,6 +16,7 @@ }, "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true } } diff --git a/internal_packages/composer-translate/package.json b/internal_packages/composer-translate/package.json index 716397418..b04221ed8 100755 --- a/internal_packages/composer-translate/package.json +++ b/internal_packages/composer-translate/package.json @@ -19,6 +19,7 @@ }, "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true } } diff --git a/internal_packages/composer/lib/main.es6 b/internal_packages/composer/lib/main.es6 index 72b2f8f0d..57ba29ccd 100644 --- a/internal_packages/composer/lib/main.es6 +++ b/internal_packages/composer/lib/main.es6 @@ -115,6 +115,10 @@ export function activate() { ComponentRegistry.register(ComposeButton, { location: WorkspaceStore.Location.RootSidebar.Toolbar, }); + } else if (NylasEnv.isThreadWindow()) { + ComponentRegistry.register(ComposerViewForDraftClientId, { + role: 'Composer', + }); } else { NylasEnv.getCurrentWindow().setMinimumSize(480, 250); ComponentRegistry.register(ComposerWithWindowProps, { diff --git a/internal_packages/composer/package.json b/internal_packages/composer/package.json index 9dfb64905..a0f2b67fe 100644 --- a/internal_packages/composer/package.json +++ b/internal_packages/composer/package.json @@ -15,6 +15,7 @@ "windowTypes": { "default": true, "composer": true, - "composer-preload": true + "composer-preload": true, + "thread-popout": true } } diff --git a/internal_packages/keybase/package.json b/internal_packages/keybase/package.json index 001b26605..fef5a5255 100755 --- a/internal_packages/keybase/package.json +++ b/internal_packages/keybase/package.json @@ -17,6 +17,7 @@ "license": "GPL-3.0", "windowTypes": { "default": true, - "composer": true + "composer": true, + "thread-popout": true } } diff --git a/internal_packages/message-list/lib/main.cjsx b/internal_packages/message-list/lib/main.cjsx index 66ec072c3..47a7aaf19 100644 --- a/internal_packages/message-list/lib/main.cjsx +++ b/internal_packages/message-list/lib/main.cjsx @@ -1,6 +1,9 @@ {ComponentRegistry, ExtensionRegistry, - WorkspaceStore} = require 'nylas-exports' + WorkspaceStore, + DatabaseStore, + Actions, + Thread} = require 'nylas-exports' MessageList = require("./message-list") MessageListHiddenMessagesToggle = require('./message-list-hidden-messages-toggle').default @@ -10,18 +13,27 @@ SidebarParticipantPicker = require('./sidebar-participant-picker').default module.exports = activate: -> - # Register Message List Actions we provide globally - ComponentRegistry.register MessageList, - location: WorkspaceStore.Location.MessageList + if NylasEnv.isMainWindow() + # Register Message List Actions we provide globally + ComponentRegistry.register MessageList, + location: WorkspaceStore.Location.MessageList - ComponentRegistry.register SidebarParticipantPicker, - location: WorkspaceStore.Location.MessageListSidebar + ComponentRegistry.register SidebarParticipantPicker, + location: WorkspaceStore.Location.MessageListSidebar - ComponentRegistry.register SidebarPluginContainer, - location: WorkspaceStore.Location.MessageListSidebar + ComponentRegistry.register SidebarPluginContainer, + location: WorkspaceStore.Location.MessageListSidebar - ComponentRegistry.register MessageListHiddenMessagesToggle, - role: 'MessageListHeaders' + ComponentRegistry.register MessageListHiddenMessagesToggle, + role: 'MessageListHeaders' + else + # This is for the thread-popout window. + ComponentRegistry.register(MessageList, {location: WorkspaceStore.Location.Center}) + threadId = NylasEnv.getWindowProps().threadId; + # We need to locate the thread and focus it so that the MessageList displays it + DatabaseStore.find(Thread, threadId).then((thread) => + Actions.setFocus({collection: 'thread', item: thread}) + ) deactivate: -> ComponentRegistry.unregister MessageList diff --git a/internal_packages/message-list/lib/message-list.cjsx b/internal_packages/message-list/lib/message-list.cjsx index 405a72cff..41048e59c 100644 --- a/internal_packages/message-list/lib/message-list.cjsx +++ b/internal_packages/message-list/lib/message-list.cjsx @@ -204,6 +204,7 @@ class MessageList extends React.Component