{Actions, Message, DatabaseStore, React} = require 'nylas-exports' {Popover, Menu, RetinaImg} = require 'nylas-component-kit' TemplateStore = require './template-store' class TemplatePicker extends React.Component @displayName: 'TemplatePicker' @containerStyles: order:2 constructor: (@props) -> @state = searchValue: "" templates: TemplateStore.items() componentDidMount: => @unsubscribe = TemplateStore.listen @_onStoreChange componentWillUnmount: => @unsubscribe() if @unsubscribe render: => button = headerComponents = [ ] footerComponents = [
Save Draft as Template...
Open Templates Folder...
] item.id } itemContent={ (item) -> item.name } onSelect={@_onChooseTemplate} /> _filteredTemplates: (search) => search ?= @state.searchValue items = TemplateStore.items() return items unless search.length items.filter (t) -> t.name.toLowerCase().indexOf(search.toLowerCase()) == 0 _onStoreChange: => @setState templates: @_filteredTemplates() _onSearchValueChange: => newSearch = event.target.value @setState searchValue: newSearch templates: @_filteredTemplates(newSearch) _onChooseTemplate: (template) => Actions.insertTemplateId({templateId:template.id, draftClientId: @props.draftClientId}) @refs.popover.close() _onManageTemplates: => Actions.showTemplates() _onNewTemplate: => Actions.createTemplate({draftClientId: @props.draftClientId}) module.exports = TemplatePicker