all files / modules/ Route.js

100% Statements 48/48
100% Branches 28/28
100% Functions 9/9
100% Lines 3/3
7 statements, 3 functions, 15 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42                                                                               
import invariant from 'invariant'
import React, { Component } from 'react'
import { createRouteFromReactElement } from './RouteUtils'
import { component, components } from './PropTypes'
 
const { string, bool, func } = React.PropTypes
 
/**
 * A <Route> is used to declare which components are rendered to the
 * page when the URL matches a given pattern.
 *
 * Routes are arranged in a nested tree structure. When a new URL is
 * requested, the tree is searched depth-first to find a route whose
 * path matches the URL.  When one is found, all routes in the tree
 * that lead to it are considered "active" and their components are
 * rendered into the DOM, nested in the same order as in the tree.
 */
class Route extends Component {
 
  static createRouteFromReactElement = createRouteFromReactElement
 
  static propTypes = {
    path: string,
    ignoreScrollBehavior: bool,
    component,
    components,
    getComponents: func
  }
 
  /* istanbul ignore next: sanity check */
  render() {
    invariant(
      false,
      '<Route> elements are for router configuration only and should not be rendered'
    )
  }
 
}
 
export default Route