mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-14 13:44:41 +08:00
e83bf2bbec
Summary: - New behavior is that the in split mode, you will perform actions on the selection via the MessageListToolbar (the toolbar positioned above the message list) - Refactored and moved around a bunch of code to achieve this: - Mostly renaming stuff and moving stuff around and removing some duplication - Update naming of toolbar role to a single role, and update relevant code - Converted and refactored a bunch of code into ES6, specifically to reuse the code for the ThreadActionsToolbar at the 2 locations - Deprecated MultiselectActionBar in favor of MultiselectToolbar - Deprecated old roles - Punted the animation for the stackable cards in the selection display for now. - #370 Test Plan: - Manual and unit tests Reviewers: evan, drew, bengotow Reviewed By: bengotow Differential Revision: https://phab.nylas.com/D2756
39 lines
927 B
JavaScript
39 lines
927 B
JavaScript
import React, {Component, PropTypes} from 'react'
|
|
import {MultiselectToolbar} from 'nylas-component-kit'
|
|
import InjectsToolbarButtons, {ToolbarRole} from './injects-toolbar-buttons'
|
|
|
|
|
|
class ThreadListToolbar extends Component {
|
|
static displayName = 'ThreadListToolbar';
|
|
|
|
static propTypes = {
|
|
items: PropTypes.array,
|
|
selection: PropTypes.shape({
|
|
clear: PropTypes.func,
|
|
}),
|
|
injectedButtons: PropTypes.element,
|
|
};
|
|
|
|
onClearSelection = ()=> {
|
|
this.props.selection.clear()
|
|
};
|
|
|
|
render() {
|
|
const {injectedButtons, items} = this.props
|
|
|
|
return (
|
|
<MultiselectToolbar
|
|
collection="thread"
|
|
selectionCount={items.length}
|
|
toolbarElement={injectedButtons}
|
|
onClearSelection={this.onClearSelection}
|
|
/>
|
|
)
|
|
}
|
|
}
|
|
|
|
const toolbarProps = {
|
|
extraRoles: [`ThreadList:${ToolbarRole}`],
|
|
}
|
|
|
|
export default InjectsToolbarButtons(ThreadListToolbar, toolbarProps)
|