     false
 
   save: ->
-    return false if @state.get('saving')
+    return if @saving
 
     val = @dom.input.val().trim()
 
     return if val is ''
 
-    @state.set saving: true
+    @saving = true
     @dom.button.text 'Adding'
+    @dom.button.attr 'disabled', true
 
     attrs = if isURL val
       source: val

        @dom.button.text 'Added'
        @dom.input.val ''
        @dom.input.focus()
        @state.set saving: false
        @checkInput()
        setTimeout (=> @dom.button.text 'Add block'), 2000

      error: (_m, e) =>
        console.error e
        @state.set saving: false
        @dom.button.text 'Error'
        setTimeout (=> @dom.button.text 'Add block'), 2000

  postRender: ->

    'click .js-button': 'save'

  initialize: ->
    @saving = false

  onInput: (e) ->
    @checkInput()
