diff --git a/internal_packages/draft-list/lib/draft-toolbar-buttons.cjsx b/internal_packages/draft-list/lib/draft-toolbar-buttons.cjsx index 2929957c9..8d9fdb345 100644 --- a/internal_packages/draft-list/lib/draft-toolbar-buttons.cjsx +++ b/internal_packages/draft-list/lib/draft-toolbar-buttons.cjsx @@ -1,6 +1,6 @@ React = require "react" {RetinaImg} = require 'nylas-component-kit' -{Actions, FocusedContentStore, DestroyDraftTask} = require "nylas-exports" +{Actions, FocusedContentStore} = require "nylas-exports" class DraftDeleteButton extends React.Component @displayName: 'DraftDeleteButton' diff --git a/src/flux/tasks/destroy-draft-task.es6 b/src/flux/tasks/destroy-draft-task.es6 index 47056c53e..5b216c7b6 100644 --- a/src/flux/tasks/destroy-draft-task.es6 +++ b/src/flux/tasks/destroy-draft-task.es6 @@ -17,20 +17,17 @@ export default class DestroyDraftTask extends BaseDraftTask { performLocal() { super.performLocal(); - return this.refreshDraftReference().then(()=> - DatabaseStore.inTransaction((t) => - t.unpersistModel(this.draft) - ) - ); + return this.refreshDraftReference() + .then(() => DatabaseStore.inTransaction((t) => t.unpersistModel(this.draft))) + .catch(BaseDraftTask.DraftNotFoundError, () => Promise.resolve()); } performRemote() { - // We don't need to do anything if (we weren't able to find the draft) - // when we performed locally, or if (the draft has never been synced to) + // We don't need to do anything if we weren't able to find the draft + // when we performed locally, or if the draft has never been synced to // the server (id is still self-assigned) if (!this.draft) { - const err = new Error("No valid draft to destroy!"); - return Promise.resolve([Task.Status.Failed, err]); + return Promise.resolve(Task.Status.Continue); } if (!this.draft.serverId) { return Promise.resolve(Task.Status.Continue); diff --git a/src/flux/tasks/syncback-draft-task.es6 b/src/flux/tasks/syncback-draft-task.es6 index bd8b91d55..ff23eb69b 100644 --- a/src/flux/tasks/syncback-draft-task.es6 +++ b/src/flux/tasks/syncback-draft-task.es6 @@ -7,9 +7,6 @@ import BaseDraftTask from './base-draft-task'; import SyncbackMetadataTask from './syncback-metadata-task'; import {APIError} from '../errors'; -class DraftNotFoundError extends Error { - -} export default class SyncbackDraftTask extends BaseDraftTask { @@ -27,7 +24,7 @@ export default class SyncbackDraftTask extends BaseDraftTask { .thenReturn(Task.Status.Success) ) .catch((err) => { - if (err instanceof DraftNotFoundError) { + if (err instanceof BaseDraftTask.DraftNotFoundError) { return Promise.resolve(Task.Status.Continue); } if ((err instanceof APIError) && (!NylasAPI.PermanentErrorCodes.includes(err.statusCode))) {