_ = require 'underscore' React = require 'react' TemplateStore = require './template-store' {Actions, Message, DatabaseStore} = require 'nylas-exports' {Popover, Menu, RetinaImg} = require 'nylas-component-kit' 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 _.filter items, (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, draftLocalId: @props.draftLocalId}) @refs.popover.close() _onManageTemplates: => Actions.showTemplates() _onNewTemplate: => Actions.createTemplate({draftLocalId: @props.draftLocalId}) module.exports = TemplatePicker