 
   componentDidMount: =>
     @_reportAppBootTime()
-    @unsub = NylasSyncStatusStore.listen( => @setState
-      syncing: FocusedPerspectiveStore.current().hasSyncingCategories()
-    )
+    @unsub = NylasSyncStatusStore.listen(@_onSyncStatusChanged)
     window.addEventListener('resize', @_onResize, true)
     ReactDOM.findDOMNode(@).addEventListener('contextmenu', @_onShowContextMenu)
     @_onResize()
+
+  shouldComponentUpdate: (nextProps, nextState) =>
+    return (
+      (not Utils.isEqualReact(@props, nextProps)) or
+      (not Utils.isEqualReact(@state, nextState))
+    )
 
   componentDidUpdate: =>
     dataSource = ThreadListStore.dataSource()

 SyncingListState} = require 'nylas-component-kit'

{Actions,
 Thread,
 Category,
 CanvasUtils,

        accountIds: [thread.accountId]
      }

  _onSyncStatusChanged: =>
    syncing = FocusedPerspectiveStore.current().hasSyncingCategories()
    @setState({syncing})

  _onShowContextMenu: (event) =>
    data = @_targetItemsForMouseEvent(event)
    if not data
