mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-23 16:56:08 +08:00
fb85db0964
Summary: This commit adds a new action, `moveThreadsToPerspective` to be proxied and measured through the ThreadListActionsStore. This action is called when a thread or group of threads is dragged and dropped into an item in the sidebar. For now, we are only interested in timing actions that remove threads from the inbox Depends on D3984 Test Plan: manual Reviewers: halla, evan, spang Reviewed By: evan, spang Differential Revision: https://phab.nylas.com/D3985
64 lines
1.7 KiB
CoffeeScript
64 lines
1.7 KiB
CoffeeScript
React = require 'react'
|
|
{Actions,
|
|
CategoryStore,
|
|
TaskFactory,
|
|
AccountStore,
|
|
FocusedPerspectiveStore} = require 'nylas-exports'
|
|
|
|
class ThreadArchiveQuickAction extends React.Component
|
|
@displayName: 'ThreadArchiveQuickAction'
|
|
@propTypes:
|
|
thread: React.PropTypes.object
|
|
|
|
render: =>
|
|
allowed = FocusedPerspectiveStore.current().canArchiveThreads([@props.thread])
|
|
return <span /> unless allowed
|
|
|
|
<div
|
|
key="archive"
|
|
title="Archive"
|
|
style={{ order: 100 }}
|
|
className="btn action action-archive"
|
|
onClick={@_onArchive} />
|
|
|
|
shouldComponentUpdate: (newProps, newState) ->
|
|
newProps.thread.id isnt @props?.thread.id
|
|
|
|
_onArchive: (event) =>
|
|
# Don't trigger the thread row click
|
|
event.stopPropagation()
|
|
Actions.archiveThreads({
|
|
source: "Quick Actions: Thread List",
|
|
threads: [@props.thread],
|
|
})
|
|
|
|
class ThreadTrashQuickAction extends React.Component
|
|
@displayName: 'ThreadTrashQuickAction'
|
|
@propTypes:
|
|
thread: React.PropTypes.object
|
|
|
|
render: =>
|
|
allowed = FocusedPerspectiveStore.current().canMoveThreadsTo([@props.thread], 'trash')
|
|
return <span /> unless allowed
|
|
|
|
<div
|
|
key="remove"
|
|
title="Trash"
|
|
style={{ order: 110 }}
|
|
className='btn action action-trash'
|
|
onClick={@_onRemove} />
|
|
|
|
shouldComponentUpdate: (newProps, newState) ->
|
|
newProps.thread.id isnt @props?.thread.id
|
|
|
|
_onRemove: (event) =>
|
|
tasks = TaskFactory.tasksForMovingToTrash
|
|
source: "Quick Actions: Thread List"
|
|
threads: [@props.thread]
|
|
Actions.queueTasks(tasks)
|
|
|
|
# Don't trigger the thread row click
|
|
event.stopPropagation()
|
|
|
|
module.exports = { ThreadArchiveQuickAction, ThreadTrashQuickAction }
|