                 success(error, message) if _.isFunction success
                 return
 
+            # Check for Updates
             @state.mailboxIDs = message.mailboxIDs
             @props.lastUpdate = message.date
 

        # Focus Element
        @handleFocus()

        # Each state:change do not send data to server
        # update date for client modifications
        unless @props.lastUpdate
            @props.lastUpdate = @state.date
        else
            @state.date = new Date().toISOString()

    hasChanged: (props, state) ->
        (props.lastUpdate and props.lastUpdate isnt state.date) or false

    resetChange: ->
        delete @props.lastUpdate

    componentWillUnmount: ->
        MessageStore.removeListener 'change', @_setStateFromStores

        if (editor = @refs.editor.getDOMNode())
            editor.removeEventListener 'click', @saveFocus

    closeSaveDraft: ->
        fetch = (message) =>
            # reload conversation to update its length
            if (cid = message.conversationID)
                MessageActionCreator.fetchConversation cid

        save = =>
            MessageActionCreator.send _.clone(@state), (error, message) ->
                if error? or not message?
                    msg = "#{t "message action draft ko"} #{error}"
                    LayoutActionCreator.alertError msg
                    return

                fetch message

        # Fetch
        unless @hasChanged()
            fetch @state
            return

        # Do not ask for save
        save()
        return

    render: ->
        closeUrl = @buildClosePanelUrl @props.layout
