mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-10-30 07:57:12 +08:00
fix(draft-list-store): Upgrade draft list store to NylasStore, fix issue where @_view is null
This commit is contained in:
parent
689c76922d
commit
5b410b7f73
1 changed files with 11 additions and 9 deletions
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue