Convert the sidebar to react.

Review Request #9557 — Created Jan. 31, 2018 and submitted — Latest diff uploaded

Information

student-sonar
master
f7351a8...

Reviewers

This change converts the SidebarView to use react internally. This is
mostly a very straightforward change.

The only unusual part of this change is the shim between react-router
and Backbone.Router. For now, we're using react-router's <NavLink>
components, but intercepting click events and redirecting them back to
the old window.application.go() function. This triggers the existing
routes properly. We also have a handler for when the route changes in
Backbone to mirror that back into react-router's history object. Once
the other views have been converted (or at least wrapped), the
<Router> component can be moved into the application view, and we can
get rid of the special route handling and just rely on react for all of
that.

  • Verified that the sidebar items loaded correctly for a variety of
    scenarios.
  • Checked that the correct item was highlighted based on the route.
  • Checked that item highlighting updated correctly even when routes were
    triggered from elsewhere in the UI (such as the "All Users" list).