From ebfa2af6d96aaef709137f9220c24de9be2fff9b Mon Sep 17 00:00:00 2001 From: Yuichi Murata Date: Sun, 10 May 2015 19:04:35 +0900 Subject: [PATCH] Fix `Router#run()` to be enabled to call with `ReactElement` created by `React.createFactory()` ref. #4267 --- react-router/react-router-test.ts | 20 ++++++++++++++++++++ react-router/react-router.d.ts | 6 +++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/react-router/react-router-test.ts b/react-router/react-router-test.ts index c220b3c246..41b352af36 100644 --- a/react-router/react-router-test.ts +++ b/react-router/react-router-test.ts @@ -263,6 +263,7 @@ class CreateTest { v: Router.Router; constructor() { + // React.createElement() version this.v = Router.create({ routes: React.createElement(Router.Route, null) }); @@ -271,6 +272,16 @@ class CreateTest { location: Router.HistoryLocation, scrollBehavior: Router.ImitateBrowserBehavior }); + + // React.createFactory() version + this.v = Router.create({ + routes: React.createFactory(Router.Route)() + }); + this.v = Router.create({ + routes: React.createFactory(Router.Route)(), + location: Router.HistoryLocation, + scrollBehavior: Router.ImitateBrowserBehavior + }); } run() { @@ -281,12 +292,21 @@ class CreateTest { class RunTest { constructor() { + // React.createElement() version var v1: Router.Router = Router.run(React.createElement(Router.Route, null), (Handler) => { React.render(React.createElement(Handler, null), document.body); }); var v2: Router.Router = Router.run(React.createElement(Router.Route, null), Router.HistoryLocation, (Handler, state) => { React.render(React.createElement(Handler, null), document.body); }); + + // React.createFactory() version + var v3: Router.Router = Router.run(React.createFactory(Router.Route)(), (Handler) => { + React.render(React.createElement(Handler, null), document.body); + }); + var v4: Router.Router = Router.run(React.createFactory(Router.Route)(), Router.HistoryLocation, (Handler, state) => { + React.render(React.createElement(Handler, null), document.body); + }); } } diff --git a/react-router/react-router.d.ts b/react-router/react-router.d.ts index 8f63f2d69f..58ec9069a4 100644 --- a/react-router/react-router.d.ts +++ b/react-router/react-router.d.ts @@ -179,7 +179,7 @@ declare module ReactRouter { } interface RouterCreateOption { - routes: Route; + routes: React.ReactElement; location?: LocationBase; scrollBehavior?: ScrollBehaviorBase; } @@ -187,8 +187,8 @@ declare module ReactRouter { type RouterRunCallback = (Handler: Router, state: RouterState) => void; function create(options: RouterCreateOption): Router; - function run(routes: Route, callback: RouterRunCallback): Router; - function run(routes: Route, location: LocationBase, callback: RouterRunCallback): Router; + function run(routes: React.ReactElement, callback: RouterRunCallback): Router; + function run(routes: React.ReactElement, location: LocationBase, callback: RouterRunCallback): Router; //