Reflux = require 'reflux' _ = require 'underscore' {Message, DatabaseStore, DatabaseView} = require 'nylas-exports' module.exports = DraftListStore = Reflux.createStore init: -> @listenTo DatabaseStore, @_onDataChanged @_view = new DatabaseView Message, matchers: [Message.attributes.draft.equal(true)], includes: [Message.attributes.body] orders: [Message.attributes.date.descending()] @listenTo @_view, => @trigger({}) view: -> @_view _onDataChanged: (change) -> return unless change.objectClass is Message.name containsDraft = _.some(change.objects, (msg) -> msg.draft) return unless containsDraft @_view.invalidate()