     failedProps:
       beforeText: 'There was a problem.  '
     doneText: ''
+    timeout: 30000
 
   render: ->
     {className, disabled} = @props
     {isWaiting, isDone, isFailed} = @props
     {children, waitingText, failedState, failedProps, doneText} = @props
+    {isTimedout} = @state
 
-    if isFailed
+    buttonTypeClass = 'async-button'
+
+    if isFailed or isTimedout
       stateClass = 'is-failed'
       return <failedState {...failedProps}/>
     else if isWaiting

    failedState: React.PropTypes.func
    failedProps: React.PropTypes.object
    doneText: React.PropTypes.any

  getDefaultProps: ->
    isDone: false

      text = children

    <BS.Button {...@props}
      className={[buttonTypeClass, stateClass, className]}
      disabled={disabled}
      >
        {spinner}
