Skip to content

Commit a38446b

Browse files
committed
Rename some helper methods
1 parent a9171eb commit a38446b

File tree

5 files changed

+25
-24
lines changed

5 files changed

+25
-24
lines changed

modules/__tests__/Router-test.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -812,8 +812,6 @@ describe('Router.run', function () {
812812
it('matches a root route', function (done) {
813813
var routes = <Route path="/" handler={EchoFooProp} />;
814814
Router.run(routes, '/', function (Handler, state) {
815-
// TODO: figure out why we're getting this warning here
816-
// WARN: 'Warning: You cannot pass children to a RouteHandler'
817815
var html = React.renderToString(<Handler foo="bar"/>);
818816
expect(html).toMatch(/bar/);
819817
done();

modules/createRouter.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ var RefreshLocation = require('./locations/RefreshLocation');
1111
var NavigationContext = require('./NavigationContext');
1212
var StateContext = require('./StateContext');
1313
var Scrolling = require('./Scrolling');
14-
var createRoutesFromChildren = require('./createRoutesFromChildren');
14+
var createRoutesFromReactChildren = require('./createRoutesFromReactChildren');
15+
var isReactChildren = require('./isReactChildren');
1516
var Transition = require('./Transition');
1617
var PropTypes = require('./PropTypes');
1718
var Redirect = require('./Redirect');
@@ -140,11 +141,8 @@ function hasMatch(routes, route, prevParams, nextParams, prevQuery, nextQuery) {
140141
function createRouter(options) {
141142
options = options || {};
142143

143-
if (typeof options === 'function') {
144-
options = { routes: options }; // Router.create(<Route>)
145-
} else if (Array.isArray(options)) {
146-
options = { routes: options }; // Router.create([ <Route>, <Route> ])
147-
}
144+
if (isReactChildren(options))
145+
options = { routes: options };
148146

149147
var routes = [];
150148
var namedRoutes = {};
@@ -200,20 +198,23 @@ function createRouter(options) {
200198
/**
201199
* Adds routes to this router from the given children object (see ReactChildren).
202200
*/
203-
addRoutes: function (children) {
204-
routes.push.apply(routes, createRoutesFromChildren(children, this, namedRoutes));
201+
addRoutes: function (newRoutes) {
202+
if (isReactChildren(newRoutes))
203+
newRoutes = createRoutesFromReactChildren(newRoutes, this, namedRoutes);
204+
205+
routes.push.apply(routes, newRoutes);
205206
},
206207

207208
/**
208209
* Replaces routes of this router from the given children object (see ReactChildren).
209210
*/
210-
replaceRoutes: function (children) {
211+
replaceRoutes: function (newRoutes) {
211212
cancelPendingTransition();
212213

213214
routes = [];
214215
namedRoutes = {};
215216

216-
this.addRoutes(children);
217+
this.addRoutes(newRoutes);
217218
this.refresh();
218219
},
219220

modules/createRoutesFromChildren.js renamed to modules/createRoutesFromReactChildren.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ var invariant = require('react/lib/invariant');
55
var DefaultRoute = require('./components/DefaultRoute');
66
var NotFoundRoute = require('./components/NotFoundRoute');
77
var Redirect = require('./components/Redirect');
8-
var Route = require('./components/Route');
98
var Path = require('./utils/Path');
109

1110
function createRedirectHandler(to, _params, _query) {
@@ -127,15 +126,15 @@ function createRoute(element, parentRoute, namedRoutes) {
127126
return null;
128127
}
129128

130-
route.childRoutes = createRoutesFromChildren(props.children, route, namedRoutes);
129+
route.childRoutes = createRoutesFromReactChildren(props.children, route, namedRoutes);
131130

132131
return route;
133132
}
134133

135134
/**
136135
* Creates and returns an array of route objects from the given ReactChildren.
137136
*/
138-
function createRoutesFromChildren(children, parentRoute, namedRoutes) {
137+
function createRoutesFromReactChildren(children, parentRoute, namedRoutes) {
139138
var routes = [];
140139

141140
React.Children.forEach(children, function (child) {
@@ -147,4 +146,4 @@ function createRoutesFromChildren(children, parentRoute, namedRoutes) {
147146
return routes;
148147
}
149148

150-
module.exports = createRoutesFromChildren;
149+
module.exports = createRoutesFromReactChildren;

modules/isReactChildren.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
var React = require('react');
2+
3+
function isValidChild(object) {
4+
return object == null || React.isValidElement(object);
5+
}
6+
7+
function isReactChildren(object) {
8+
return isValidChild(object) || (Array.isArray(object) && object.every(isValidChild));
9+
}
10+
11+
module.exports = isReactChildren;

modules/utils/isReactChildren.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)