fix(draft-list-store): Upgrade draft list store to NylasStore, fix issue where @_view is null

This commit is contained in:
Ben Gotow 2015-09-08 18:38:45 -07:00
parent 689c76922d
commit 5b410b7f73

View file

@ -1,3 +1,4 @@
NylasStore = require 'nylas-store'
Reflux = require 'reflux' Reflux = require 'reflux'
_ = require 'underscore' _ = require 'underscore'
{Message, {Message,
@ -8,9 +9,8 @@ _ = require 'underscore'
DestroyDraftTask, DestroyDraftTask,
DatabaseView} = require 'nylas-exports' DatabaseView} = require 'nylas-exports'
module.exports = class DraftListStore extends NylasStore
DraftListStore = Reflux.createStore constructor: ->
init: ->
@listenTo DatabaseStore, @_onDataChanged @listenTo DatabaseStore, @_onDataChanged
@listenTo AccountStore, @_onAccountChanged @listenTo AccountStore, @_onAccountChanged
@listenTo Actions.deleteSelection, @_onDeleteSelection @listenTo Actions.deleteSelection, @_onDeleteSelection
@ -21,10 +21,10 @@ DraftListStore = Reflux.createStore
@listenTo Actions.sendDraftSuccess, => @_view.invalidate() @listenTo Actions.sendDraftSuccess, => @_view.invalidate()
@_createView() @_createView()
view: -> view: =>
@_view @_view
_createView: -> _createView: =>
account = AccountStore.current() account = AccountStore.current()
if @unlisten if @unlisten
@ -43,19 +43,21 @@ DraftListStore = Reflux.createStore
@unlisten = @_view.listen => @trigger({}) @unlisten = @_view.listen => @trigger({})
_onAccountChanged: -> _onAccountChanged: =>
@_createView() @_createView()
_onDataChanged: (change) -> _onDataChanged: (change) =>
return unless change.objectClass is Message.name return unless change.objectClass is Message.name
containsDraft = _.some(change.objects, (msg) -> msg.draft) containsDraft = _.some(change.objects, (msg) -> msg.draft)
return unless containsDraft return unless containsDraft and @_view
@_view.invalidate() @_view.invalidate()
_onDeleteSelection: -> _onDeleteSelection: =>
selected = @_view.selection.items() selected = @_view.selection.items()
for item in selected for item in selected
Actions.queueTask(new DestroyDraftTask(draftClientId: item.clientId)) Actions.queueTask(new DestroyDraftTask(draftClientId: item.clientId))
@_view.selection.clear() @_view.selection.clear()
module.exports = new DraftListStore()