mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-14 13:44:41 +08:00
6c881f4f64
Summary: This started when I noticed that drafts weren't dissapearing from the draft list after send. This was a pretty big bug because if you ever clicked on one again and tried to re-send it would throw a 400 error saying the draft id doesn't exist. This uncovered a few fundamental issues with the DB. First of all, the reason the draft list wasn't updating was because the DB trigger that happened when we got in a new message, was being ignored since the diff contained no drafts (it's now a message). The bigger issue was that if you had a draft with only a clientId, gave it a serverId, and tried to call "save", the REPLACE INTO method would not update the old object, but rather create a second duplicate. This is because the `id` field was being used as the PRIMARY KEY, and in this case, that `id` field changed! The fix was to change the PRIMARY KEY to be the `cilent_id` instead of the `id` and use that as the REPLACE INTO index. We still need the `id` field; however, because all of our reads depend on that field usually being the serverId Fixes T3507 Test Plan: See new and updated tests Reviewers: dillon, bengotow Reviewed By: bengotow Maniphest Tasks: T3507 Differential Revision: https://phab.nylas.com/D1992
24 lines
690 B
CoffeeScript
24 lines
690 B
CoffeeScript
React = require "react/addons"
|
|
classNames = require 'classnames'
|
|
{RetinaImg} = require 'nylas-component-kit'
|
|
{Actions, FocusedContentStore} = require "nylas-exports"
|
|
|
|
class DraftDeleteButton extends React.Component
|
|
@displayName: 'DraftDeleteButton'
|
|
@containerRequired: false
|
|
|
|
@propTypes:
|
|
selection: React.PropTypes.object.isRequired
|
|
|
|
render: ->
|
|
<button style={order:-100}
|
|
className="btn btn-toolbar"
|
|
data-tooltip="Delete"
|
|
onClick={@_destroyDraft}>
|
|
<RetinaImg name="icon-composer-trash.png" mode={RetinaImg.Mode.ContentIsMask} />
|
|
</button>
|
|
|
|
_destroyDraft: =>
|
|
Actions.deleteSelection()
|
|
|
|
module.exports = {DraftDeleteButton}
|