   gutterComponent: null
 
   render: ->
-    @oldState ?= {}
-    @newState = @presenter.state
-
-    {editor, cursorBlinkPeriod, cursorBlinkResumeDelay, hostElement, useShadowDOM} = @props
-    hasSelection = editor.getLastSelection()? and !editor.getLastSelection().isEmpty()
-    style = {}
-
-    @performedInitialMeasurement = false if editor.isDestroyed()
-
-    if @performedInitialMeasurement
-      style.height = @presenter.state.height if @presenter.state.height?
-
-    if useShadowDOM
+    if @props.useShadowDOM
       className = 'editor-contents--private'
     else
       className = 'editor-contents'
-    className += ' is-focused' if @newState.focused
-    className += ' has-selection' if hasSelection
-
-    div {className, style},
+
+    div {className},
       div ref: 'scrollView', className: 'scroll-view'
 
   getInitialState: -> {}

    @domPollingIntervalId = null

  componentDidUpdate: ->
    cursorMoved = @cursorMoved
    selectionChanged = @selectionChanged
    @cursorMoved = false
    @selectionChanged = false

    if @presenter.state.gutter.visible
      @mountGutterComponent() unless @gutterComponent?


    @domPollingIntervalId = setInterval(@pollDOM, @domPollingInterval)

    @updateSync()
    @checkForVisibilityChange()

  componentWillUnmount: ->
