diff --git a/karma.conf.js b/karma.conf.js
index bb1f22eb93..9da172e5ac 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -25,7 +25,7 @@ module.exports = function (config) {
devtool: 'inline-source-map',
module: {
loaders: [
- { test: /\.js$/, loader: 'babel-loader' }
+ { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
]
},
plugins: [
diff --git a/modules/PropTypes.js b/modules/PropTypes.js
index 55486da01b..ead66621f6 100644
--- a/modules/PropTypes.js
+++ b/modules/PropTypes.js
@@ -1,4 +1,4 @@
-var assign = require('react/lib/Object.assign');
+var assign = require('object-assign');
var ReactPropTypes = require('react').PropTypes;
var Route = require('./Route');
diff --git a/modules/Route.js b/modules/Route.js
index 207336d685..9ce59e72f9 100644
--- a/modules/Route.js
+++ b/modules/Route.js
@@ -1,4 +1,4 @@
-var assign = require('react/lib/Object.assign');
+var assign = require('object-assign');
var invariant = require('invariant');
var warning = require('./warning');
var PathUtils = require('./PathUtils');
diff --git a/modules/__tests__/Router-test.js b/modules/__tests__/Router-test.js
index a4982cd12b..56b483cf28 100644
--- a/modules/__tests__/Router-test.js
+++ b/modules/__tests__/Router-test.js
@@ -1,5 +1,7 @@
var expect = require('expect');
var React = require('react');
+var ReactDOM = require('react-dom');
+var ReactDOMServer = require('react-dom/server');
var Router = require('../index');
var Route = require('../components/Route');
var RouteHandler = require('../components/RouteHandler');
@@ -64,7 +66,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -100,7 +102,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -143,7 +145,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -181,7 +183,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -241,7 +243,7 @@ describe('Router', function () {
});
router.run(function (Handler, state) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -255,7 +257,7 @@ describe('Router', function () {
var div = document.createElement('div');
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
expect(div.innerHTML).toMatch(/Foo/);
done();
});
@@ -291,7 +293,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -327,7 +329,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -370,7 +372,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -408,7 +410,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -422,7 +424,7 @@ describe('Router', function () {
var div = document.createElement('div');
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
location.push('/abort');
expect(div.innerHTML).toMatch(/Foo/);
expect(location.getCurrentPath()).toEqual('/foo');
@@ -459,7 +461,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -495,7 +497,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -538,7 +540,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -576,7 +578,7 @@ describe('Router', function () {
});
router.run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -630,7 +632,7 @@ describe('Router', function () {
});
router.run(function (Handler, state) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -642,7 +644,7 @@ describe('Router', function () {
it('renders with query params', function (done) {
var routes = ;
Router.run(routes, '/?foo=bar', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/bar/);
done();
});
@@ -651,7 +653,7 @@ describe('Router', function () {
it('renders with empty query string', function (done) {
var routes = ;
Router.run(routes, '/?', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Foo/);
done();
});
@@ -706,7 +708,7 @@ describe('Router', function () {
var div = document.createElement('div');
Router.run(routes, location, function (Handler, state) {
- React.render(, div);
+ ReactDOM.render(, div);
});
location.push('/spoon?filter=second');
@@ -720,7 +722,7 @@ describe('Router', function () {
var Bar = React.createClass({
statics: {
willTransitionFrom: function (transition, component) {
- expect(div.querySelector('#bar')).toBe(component.getDOMNode());
+ expect(div.querySelector('#bar')).toBe(ReactDOM.findDOMNode(component));
done();
}
},
@@ -740,7 +742,7 @@ describe('Router', function () {
var location = new TestLocation([ '/bar' ]);
Router.run(routes, location, function (Handler, state) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
location.push('/baz');
});
});
@@ -802,9 +804,9 @@ describe('Router', function () {
Router.run(routes, location, function (Handler, state) {
// Calling render on the handler twice should be allowed
- React.render(, div);
+ ReactDOM.render(, div);
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
setTimeout(function() {
steps.shift()();
}, 1);
@@ -854,7 +856,7 @@ describe('Router.run', function () {
it('matches a root route', function (done) {
var routes = ;
Router.run(routes, '/', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/bar/);
done();
});
@@ -866,7 +868,7 @@ describe('Router.run', function () {
];
Router.run(routes, '/foo', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Foo/);
done();
});
@@ -879,7 +881,7 @@ describe('Router.run', function () {
);
Router.run(routes, '/foo', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Nested/);
expect(html).toMatch(/Foo/);
done();
@@ -894,7 +896,7 @@ describe('Router.run', function () {
);
Router.run(routes, '/Foo', function (Handler, state) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
expect(div.querySelectorAll('.Nested').length).toEqual(1);
done();
});
@@ -904,7 +906,7 @@ describe('Router.run', function () {
it('supports dynamic segments', function (done) {
var routes = ;
Router.run(routes, '/d00d3tt3', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/d00d3tt3/);
done();
});
@@ -917,7 +919,7 @@ describe('Router.run', function () {
);
Router.run(routes, '/foo/bar', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/bar/);
done();
});
@@ -947,7 +949,7 @@ describe('Router.run', function () {
});
Router.run(routes, location, function (Handler, state) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -989,7 +991,7 @@ describe('Router.run', function () {
location: location,
scrollBehavior: ScrollToTopBehavior
}).run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
if (renderCount === 0) {
position = { x: 20, y: 50 };
window.scrollTo(position.x, position.y);
@@ -1054,7 +1056,7 @@ describe('Router.run', function () {
renderCount = 0;
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
if (renderCount === 0) {
position = { x: 20, y: 50 };
window.scrollTo(position.x, position.y);
@@ -1129,7 +1131,7 @@ describe('Router.run', function () {
location: location,
scrollBehavior: MockScrollBehavior
}).run(function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
if (!isDone) {
isDone = true;
done();
diff --git a/modules/__tests__/Routing-test.js b/modules/__tests__/Routing-test.js
index 6058a74f45..f6ca8c78c6 100644
--- a/modules/__tests__/Routing-test.js
+++ b/modules/__tests__/Routing-test.js
@@ -1,5 +1,6 @@
var expect = require('expect');
var React = require('react');
+var ReactDOMServer = require('react-dom/server');
var Router = require('../index');
var Route = require('../components/Route');
var { Foo, Bar, Nested } = require('../TestUtils');
@@ -14,7 +15,7 @@ describe('creating routes from ReactChildren', function () {
];
Router.run(routes, '/foo', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Foo/);
done();
});
@@ -29,7 +30,7 @@ describe('creating routes from ReactChildren', function () {
];
Router.run(routes, '/bar', function (Handler, state) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Bar/);
done();
});
diff --git a/modules/__tests__/State-test.js b/modules/__tests__/State-test.js
index dc3918760e..7eefc01d43 100644
--- a/modules/__tests__/State-test.js
+++ b/modules/__tests__/State-test.js
@@ -1,5 +1,6 @@
var assert = require('assert');
var React = require('react');
+var ReactDOM = require('react-dom');
var Router = require('../index');
var Route = require('../components/Route');
var TestLocation = require('../locations/TestLocation');
@@ -20,7 +21,7 @@ describe('State', function () {
Router.run(routes, location, function (Handler) {
router = this;
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
assert(router.isActive('foo'));
done();
});
@@ -37,14 +38,14 @@ describe('State', function () {
location = new TestLocation([ '/products/123/456?search=abc&limit=789' ]);
Router.run(routes, location, function (Handler) {
router = this;
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
done();
});
});
});
afterEach(function () {
- React.unmountComponentAtNode(div);
+ ReactDOM.unmountComponentAtNode(div);
});
describe('and no query is used', function () {
diff --git a/modules/components/ActiveHandler.js b/modules/components/ActiveHandler.js
index 6f952d72d5..bc959d5337 100644
--- a/modules/components/ActiveHandler.js
+++ b/modules/components/ActiveHandler.js
@@ -1,6 +1,6 @@
var React = require('react');
var ContextWrapper = require('./ContextWrapper')
-var assign = require('react/lib/Object.assign');
+var assign = require('object-assign');
var PropTypes = require('../PropTypes');
var REF_NAME = '__routeHandler__';
diff --git a/modules/components/Link.js b/modules/components/Link.js
index 5c49c0e477..89a8327862 100644
--- a/modules/components/Link.js
+++ b/modules/components/Link.js
@@ -1,5 +1,5 @@
var React = require('react');
-var assign = require('react/lib/Object.assign');
+var assign = require('object-assign');
var PropTypes = require('../PropTypes');
function isLeftClickEvent(event) {
diff --git a/modules/components/RouteHandler.js b/modules/components/RouteHandler.js
index 6f952d72d5..bc959d5337 100644
--- a/modules/components/RouteHandler.js
+++ b/modules/components/RouteHandler.js
@@ -1,6 +1,6 @@
var React = require('react');
var ContextWrapper = require('./ContextWrapper')
-var assign = require('react/lib/Object.assign');
+var assign = require('object-assign');
var PropTypes = require('../PropTypes');
var REF_NAME = '__routeHandler__';
diff --git a/modules/components/__tests__/DefaultRoute-test.js b/modules/components/__tests__/DefaultRoute-test.js
index 2ed0648575..40d46383d4 100644
--- a/modules/components/__tests__/DefaultRoute-test.js
+++ b/modules/components/__tests__/DefaultRoute-test.js
@@ -1,5 +1,6 @@
var expect = require('expect');
var React = require('react');
+var ReactDOMServer = require('react-dom/server');
var Router = require('../../index');
var DefaultRoute = require('../DefaultRoute');
var Route = require('../Route');
@@ -15,7 +16,7 @@ describe('DefaultRoute', function () {
);
Router.run(routes, '/', function (App) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Nested/);
expect(html).toMatch(/Foo/);
});
@@ -31,7 +32,7 @@ describe('DefaultRoute', function () {
);
Router.run(routes, '/foo', function (App) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Nested/);
expect(html).toMatch(/Foo/);
});
@@ -46,7 +47,7 @@ describe('DefaultRoute', function () {
);
Router.run(routes, '/', function (App) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Nested/);
expect(html).toMatch(/Foo/);
});
diff --git a/modules/components/__tests__/Link-test.js b/modules/components/__tests__/Link-test.js
index cd246d3fc0..f427fe701d 100644
--- a/modules/components/__tests__/Link-test.js
+++ b/modules/components/__tests__/Link-test.js
@@ -1,13 +1,15 @@
var assert = require('assert');
var expect = require('expect');
-var React = require('react/addons');
+var React = require('react');
+var ReactTestUtils = require('react-addons-test-utils')
+var ReactDOM = require('react-dom');
var Router = require('../../index');
var Route = require('../Route');
var Link = require('../Link');
var RouteHandler = require('../RouteHandler');
var TestLocation = require('../../locations/TestLocation');
var { Foo, Bar } = require('../../TestUtils');
-var { click } = React.addons.TestUtils.Simulate;
+var { click } = ReactTestUtils.Simulate;
describe('A Link', function () {
describe('with params and a query', function () {
@@ -27,7 +29,7 @@ describe('A Link', function () {
var location = new TestLocation([ '/link' ]);
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
var a = div.querySelector('a');
expect(a.getAttribute('href')).toEqual('/foo/baz?qux=quux');
});
@@ -89,7 +91,7 @@ describe('A Link', function () {
});
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -148,7 +150,7 @@ describe('A Link', function () {
});
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
@@ -176,7 +178,7 @@ describe('A Link', function () {
var location = new TestLocation([ '/link' ]);
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
click(div.querySelector('a'));
});
});
@@ -213,7 +215,7 @@ describe('A Link', function () {
});
Router.run(routes, location, function (Handler) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
steps.shift()();
});
});
diff --git a/modules/components/__tests__/NotFoundRoute-test.js b/modules/components/__tests__/NotFoundRoute-test.js
index 92cf97151d..9d2ac9b61d 100644
--- a/modules/components/__tests__/NotFoundRoute-test.js
+++ b/modules/components/__tests__/NotFoundRoute-test.js
@@ -1,5 +1,6 @@
var expect = require('expect');
var React = require('react');
+var ReactDOMServer = require('react-dom/server');
var Router = require('../../index');
var NotFoundRoute = require('../NotFoundRoute');
var Route = require('../Route');
@@ -11,7 +12,7 @@ describe('NotFoundRoute', function () {
it('renders when no other routes match', function () {
var routes = ;
Router.run(routes, '/ryans-patience', function (Handler) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Bar/);
});
});
@@ -27,7 +28,7 @@ describe('NotFoundRoute', function () {
);
Router.run(routes, '/ryans-mind', function (Handler) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Bar/);
});
});
@@ -46,7 +47,7 @@ describe('NotFoundRoute', function () {
it('renders the matching parents and itself', function () {
Router.run(routes, '/ryans/compassion', function (Handler) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Nested/);
expect(html).toMatch(/Bar/);
});
@@ -54,7 +55,7 @@ describe('NotFoundRoute', function () {
it('does not match if a sibling matches', function () {
Router.run(routes, '/ryans/happiness', function (Handler) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Nested/);
expect(html).toMatch(/Foo/);
});
@@ -71,7 +72,7 @@ describe('NotFoundRoute', function () {
);
Router.run(routes, '/ryans-mind', function (Handler) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Bar/);
});
});
diff --git a/modules/components/__tests__/Redirect-test.js b/modules/components/__tests__/Redirect-test.js
index f284b3dceb..8a7ecf4887 100644
--- a/modules/components/__tests__/Redirect-test.js
+++ b/modules/components/__tests__/Redirect-test.js
@@ -1,5 +1,6 @@
var expect = require('expect');
var React = require('react');
+var ReactDOM = require('react-dom');
var Router = require('../../index');
var TestLocation = require('../../locations/TestLocation');
var { Nested, Bar } = require('../../TestUtils');
@@ -18,7 +19,7 @@ describe('Redirect', function () {
];
Router.run(routes, location, function (Handler) {
- React.render(, div);
+ ReactDOM.render(, div);
expect(div.innerHTML).toMatch(/Bar/);
});
});
@@ -34,7 +35,7 @@ describe('Redirect', function () {
];
Router.run(routes, location, function (Handler) {
- React.render(, div);
+ ReactDOM.render(, div);
expect(div.innerHTML).toMatch(/Bar/);
});
});
@@ -55,7 +56,7 @@ describe('Redirect', function () {
);
Router.run(routes, location, function (Handler) {
- React.render(, div);
+ ReactDOM.render(, div);
expect(div.innerHTML).toMatch(/Bar/);
});
});
@@ -74,7 +75,7 @@ describe('Redirect', function () {
);
Router.run(routes, location, function (Handler) {
- React.render(, div);
+ ReactDOM.render(, div);
expect(div.innerHTML).toMatch(/Bar/);
});
});
diff --git a/modules/components/__tests__/Route-test.js b/modules/components/__tests__/Route-test.js
index 4972afbe2f..3c4e600c39 100644
--- a/modules/components/__tests__/Route-test.js
+++ b/modules/components/__tests__/Route-test.js
@@ -1,5 +1,6 @@
var expect = require('expect');
var React = require('react');
+var ReactDOMServer = require('react-dom/server');
var Router = require('../../index');
var DefaultRoute = require('../DefaultRoute');
var Route = require('../Route');
@@ -16,7 +17,7 @@ describe('Route', function () {
);
Router.run(routes, '/', function (App) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Foo/);
});
});
@@ -30,7 +31,7 @@ describe('Route', function () {
);
Router.run(routes, '/bar', function (App) {
- var html = React.renderToString();
+ var html = ReactDOMServer.renderToString();
expect(html).toMatch(/Bar/);
});
});
diff --git a/modules/components/__tests__/RouteHandler-test.js b/modules/components/__tests__/RouteHandler-test.js
index 36867732f1..f1f5a0cd2d 100644
--- a/modules/components/__tests__/RouteHandler-test.js
+++ b/modules/components/__tests__/RouteHandler-test.js
@@ -1,5 +1,6 @@
var expect = require('expect');
var React = require('react');
+var ReactDOM = require('react-dom');
var Router = require('../../index');
var Route = require('../Route');
var RouteHandler = require('../RouteHandler');
@@ -40,7 +41,7 @@ describe('RouteHandler', function () {
var steps = [];
steps.push(function (Handler, state) {
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
expect(div.innerHTML).toMatch(/Foo/);
location.push('/bar');
});
@@ -49,7 +50,7 @@ describe('RouteHandler', function () {
steps.push(function (Handler, state) {
updateComponentBeforeNextRender(function () {
expect(div.innerHTML).toMatch(/Foo/);
- React.render(, div, function () {
+ ReactDOM.render(, div, function () {
expect(div.innerHTML).toMatch(/Bar/);
done();
});
@@ -91,7 +92,7 @@ describe('RouteHandler', function () {
var div = document.createElement('div');
Router.run(routes, '/foo', function (App) {
- React.render(, div);
+ ReactDOM.render(, div);
});
function finishTest() {
diff --git a/modules/createRoutesFromReactChildren.js b/modules/createRoutesFromReactChildren.js
index 5eaeca3e84..7e8ac5d957 100644
--- a/modules/createRoutesFromReactChildren.js
+++ b/modules/createRoutesFromReactChildren.js
@@ -1,6 +1,6 @@
/* jshint -W084 */
var React = require('react');
-var assign = require('react/lib/Object.assign');
+var assign = require('object-assign');
var warning = require('./warning');
var DefaultRoute = require('./components/DefaultRoute');
var NotFoundRoute = require('./components/NotFoundRoute');
diff --git a/package.json b/package.json
index 3a0d7c696c..cf02003bbf 100644
--- a/package.json
+++ b/package.json
@@ -38,14 +38,16 @@
"marked": "0.3.3",
"mocha": "^2.0.1",
"pygmentize-bundled": "^2.3.0",
- "react": "0.14.x",
+ "react": "^15.0.1",
+ "react-addons-test-utils": "^15.0.1",
+ "react-dom": "^15.0.1",
"rf-changelog": "^0.4.0",
"rx": "2.3.18",
"webpack": "^1.4.13",
"webpack-dev-server": "^1.6.6"
},
"peerDependencies": {
- "react": "0.13.x||0.14.x"
+ "react": "0.13.x || 0.14.x || ^15.0.1"
},
"dependencies": {
"can-use-dom": "0.1.0",
diff --git a/webpack.config.js b/webpack.config.js
index e9f67b8642..db01724691 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -36,7 +36,7 @@ module.exports = {
module: {
loaders: [
- { test: /\.js$/, loader: 'babel-loader' }
+ { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
]
},