import _ from 'underscore' import React, {Component, PropTypes} from 'react' import {ListensToObservable} from 'nylas-component-kit' import ThreadListStore from './thread-list-store' function getObservable() { return ( ThreadListStore.selectionObservable() .map(items => items.length) ) } function getStateFromObservable(selectionCount) { if (!selectionCount) { return {selectionCount: 0} } return {selectionCount} } class SelectedItemsStack extends Component { static displayName = "SelectedItemsStack"; static propTypes = { selectionCount: PropTypes.number, }; static containerRequired = false; onClearSelection = () => { ThreadListStore.dataSource().selection.clear() }; render() { const {selectionCount} = this.props if (selectionCount <= 1) { return } const cardCount = Math.min(5, selectionCount) return (
{_.times(cardCount, (idx) => { let deg = idx * 0.9; if (idx === 1) { deg += 0.5 } let transform = `rotate(${deg}deg)` if (idx === cardCount - 1) { transform += ' translate3d(2px, 3px, 0)' } const style = { transform, zIndex: 5 - idx, } return
})}
{selectionCount}
messages selected
Clear Selection
) } } export default ListensToObservable(SelectedItemsStack, {getObservable, getStateFromObservable})