mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-22 00:06:06 +08:00
fix(draft-store-proxy): Centralize check for body
This commit is contained in:
parent
7e6d5b64d8
commit
e5f3f3087b
|
@ -85,10 +85,7 @@ class DraftStoreProxy
|
|||
@_draftPromise ?= new Promise (resolve, reject) =>
|
||||
DatabaseStore = require './database-store'
|
||||
DatabaseStore.findByLocalId(Message, @draftLocalId).then (draft) =>
|
||||
if !draft.body?
|
||||
throw new Error("DraftStoreProxy.prepare - draft has no body.")
|
||||
@_draft = draft
|
||||
@_emitter.emit('trigger')
|
||||
@_setDraft(draft)
|
||||
resolve(@)
|
||||
.catch(reject)
|
||||
@_draftPromise
|
||||
|
@ -108,6 +105,12 @@ class DraftStoreProxy
|
|||
# so that we can be garbage collected
|
||||
unlisten() for unlisten in @unlisteners
|
||||
|
||||
_setDraft: (draft) ->
|
||||
if !draft.body?
|
||||
throw new Error("DraftStoreProxy._setDraft - new draft has no body!")
|
||||
@_draft = draft
|
||||
@_emitter.emit('trigger')
|
||||
|
||||
_onDraftChanged: (change) ->
|
||||
return if not change?
|
||||
# We don't accept changes unless our draft object is loaded
|
||||
|
@ -116,13 +119,11 @@ class DraftStoreProxy
|
|||
# Is this change an update to our draft?
|
||||
myDraft = _.find(change.objects, (obj) => obj.id == @_draft.id)
|
||||
if myDraft
|
||||
@_draft = myDraft
|
||||
@_emitter.emit('trigger')
|
||||
@_setDraft(myDraft)
|
||||
|
||||
_onDraftSwapped: (change) ->
|
||||
# A draft was saved with a new ID. Since we use the draft ID to
|
||||
# watch for changes to our draft, we need to pull again using our
|
||||
# localId.
|
||||
if change.oldModel.id is @_draft.id
|
||||
@_draft = change.newModel
|
||||
@_emitter.emit('trigger')
|
||||
@_setDraft(change.newModel)
|
||||
|
|
Loading…
Reference in a new issue