       textInBetween = textAreaValue.substring(selectionStart, selectionEnd)
       textAfter = textAreaValue.substring(selectionEnd, textAreaValue.length)
       value = textBefore + startTag + textInBetween + endTag + textAfter
-    newAnnotation = Object.assign @props.annotation, {value}
-    @props.onChange newAnnotation
+    @setState { value }
 
   updateHeight: ->
     @setState textareaHeight: @refs.textInput.scrollHeight + 2

          autoFocus={@props.autoFocus}
          className="standard-input full"
          ref="textInput"
          value={@props.annotation.value}
          onChange={@handleChange}
          rows="1"
          style={height: @state.textareaHeight}

  getInitialState: ->
    textareaHeight: undefined
    initOffsetHeight: undefined
    value: @props.annotation.value

  componentWillMount: ->
    @debouncedUpdateAnnotation = _.debounce @updateAnnotation, 500

  componentDidMount: ->
    @setState initOffsetHeight: @refs.textInput.offsetHeight
