_ = require 'underscore' React = require 'react' {ListTabular, MultiselectList, InjectedComponent} = require 'nylas-component-kit' {timestamp, subject} = require './formatting-utils' {Actions, FocusedContentStore, DatabaseStore} = require 'nylas-exports' DraftListStore = require './draft-list-store' EmptyState = require './empty-state' class DraftList extends React.Component @displayName: 'DraftList' @containerRequired: false componentWillMount: => snippet = (html) => return "" unless html and typeof(html) is 'string' try @draftSanitizer ?= document.createElement('div') @draftSanitizer.innerHTML = html[0..400] text = @draftSanitizer.innerText text[0..200] catch return "" c1 = new ListTabular.Column name: "Name" width: 200 resolver: (draft) =>
c2 = new ListTabular.Column name: "Message" flex: 4 resolver: (draft) => attachments = [] if draft.files?.length > 0 attachments =
{subject(draft.subject)} {snippet(draft.body)} {attachments} c3 = new ListTabular.Column name: "Date" flex: 1 resolver: (draft) => {timestamp(draft.date)} @columns = [c1, c2, c3] @commands = 'core:remove-from-view': @_onRemoveFromView render: => {} } itemHeight={39} className="draft-list" collection="draft" /> _onDoubleClick: (item) => Actions.composePopoutDraft(item.clientId) # Additional Commands _onRemoveFromView: => items = DraftListStore.view().selection.items() for item in items Actions.destroyDraft(item.clientId) module.exports = DraftList