Skip to content

Commit aaf8322

Browse files
taiontimdorr
authored andcommitted
Support React v15 on legacy v0.13 branch (#3607)
1 parent 578e79f commit aaf8322

18 files changed

+85
-72
lines changed

karma.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module.exports = function (config) {
2525
devtool: 'inline-source-map',
2626
module: {
2727
loaders: [
28-
{ test: /\.js$/, loader: 'babel-loader' }
28+
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
2929
]
3030
},
3131
plugins: [

modules/PropTypes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var assign = require('react/lib/Object.assign');
1+
var assign = require('object-assign');
22
var ReactPropTypes = require('react').PropTypes;
33
var Route = require('./Route');
44

modules/Route.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var assign = require('react/lib/Object.assign');
1+
var assign = require('object-assign');
22
var invariant = require('invariant');
33
var warning = require('./warning');
44
var PathUtils = require('./PathUtils');

modules/__tests__/Router-test.js

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
var expect = require('expect');
22
var React = require('react');
3+
var ReactDOM = require('react-dom');
4+
var ReactDOMServer = require('react-dom/server');
35
var Router = require('../index');
46
var Route = require('../components/Route');
57
var RouteHandler = require('../components/RouteHandler');
@@ -64,7 +66,7 @@ describe('Router', function () {
6466
});
6567

6668
router.run(function (Handler) {
67-
React.render(<Handler/>, div, function () {
69+
ReactDOM.render(<Handler/>, div, function () {
6870
steps.shift()();
6971
});
7072
});
@@ -100,7 +102,7 @@ describe('Router', function () {
100102
});
101103

102104
router.run(function (Handler) {
103-
React.render(<Handler/>, div, function () {
105+
ReactDOM.render(<Handler/>, div, function () {
104106
steps.shift()();
105107
});
106108
});
@@ -143,7 +145,7 @@ describe('Router', function () {
143145
});
144146

145147
router.run(function (Handler) {
146-
React.render(<Handler/>, div, function () {
148+
ReactDOM.render(<Handler/>, div, function () {
147149
steps.shift()();
148150
});
149151
});
@@ -181,7 +183,7 @@ describe('Router', function () {
181183
});
182184

183185
router.run(function (Handler) {
184-
React.render(<Handler/>, div, function () {
186+
ReactDOM.render(<Handler/>, div, function () {
185187
steps.shift()();
186188
});
187189
});
@@ -241,7 +243,7 @@ describe('Router', function () {
241243
});
242244

243245
router.run(function (Handler, state) {
244-
React.render(<Handler />, div, function () {
246+
ReactDOM.render(<Handler />, div, function () {
245247
steps.shift()();
246248
});
247249
});
@@ -255,7 +257,7 @@ describe('Router', function () {
255257
var div = document.createElement('div');
256258

257259
Router.run(routes, location, function (Handler) {
258-
React.render(<Handler/>, div, function () {
260+
ReactDOM.render(<Handler/>, div, function () {
259261
expect(div.innerHTML).toMatch(/Foo/);
260262
done();
261263
});
@@ -291,7 +293,7 @@ describe('Router', function () {
291293
});
292294

293295
router.run(function (Handler) {
294-
React.render(<Handler/>, div, function () {
296+
ReactDOM.render(<Handler/>, div, function () {
295297
steps.shift()();
296298
});
297299
});
@@ -327,7 +329,7 @@ describe('Router', function () {
327329
});
328330

329331
router.run(function (Handler) {
330-
React.render(<Handler/>, div, function () {
332+
ReactDOM.render(<Handler/>, div, function () {
331333
steps.shift()();
332334
});
333335
});
@@ -370,7 +372,7 @@ describe('Router', function () {
370372
});
371373

372374
router.run(function (Handler) {
373-
React.render(<Handler/>, div, function () {
375+
ReactDOM.render(<Handler/>, div, function () {
374376
steps.shift()();
375377
});
376378
});
@@ -408,7 +410,7 @@ describe('Router', function () {
408410
});
409411

410412
router.run(function (Handler) {
411-
React.render(<Handler/>, div, function () {
413+
ReactDOM.render(<Handler/>, div, function () {
412414
steps.shift()();
413415
});
414416
});
@@ -422,7 +424,7 @@ describe('Router', function () {
422424
var div = document.createElement('div');
423425

424426
Router.run(routes, location, function (Handler) {
425-
React.render(<Handler/>, div, function () {
427+
ReactDOM.render(<Handler/>, div, function () {
426428
location.push('/abort');
427429
expect(div.innerHTML).toMatch(/Foo/);
428430
expect(location.getCurrentPath()).toEqual('/foo');
@@ -459,7 +461,7 @@ describe('Router', function () {
459461
});
460462

461463
router.run(function (Handler) {
462-
React.render(<Handler/>, div, function () {
464+
ReactDOM.render(<Handler/>, div, function () {
463465
steps.shift()();
464466
});
465467
});
@@ -495,7 +497,7 @@ describe('Router', function () {
495497
});
496498

497499
router.run(function (Handler) {
498-
React.render(<Handler/>, div, function () {
500+
ReactDOM.render(<Handler/>, div, function () {
499501
steps.shift()();
500502
});
501503
});
@@ -538,7 +540,7 @@ describe('Router', function () {
538540
});
539541

540542
router.run(function (Handler) {
541-
React.render(<Handler/>, div, function () {
543+
ReactDOM.render(<Handler/>, div, function () {
542544
steps.shift()();
543545
});
544546
});
@@ -576,7 +578,7 @@ describe('Router', function () {
576578
});
577579

578580
router.run(function (Handler) {
579-
React.render(<Handler/>, div, function () {
581+
ReactDOM.render(<Handler/>, div, function () {
580582
steps.shift()();
581583
});
582584
});
@@ -630,7 +632,7 @@ describe('Router', function () {
630632
});
631633

632634
router.run(function (Handler, state) {
633-
React.render(<Handler />, div, function () {
635+
ReactDOM.render(<Handler />, div, function () {
634636
steps.shift()();
635637
});
636638
});
@@ -642,7 +644,7 @@ describe('Router', function () {
642644
it('renders with query params', function (done) {
643645
var routes = <Route handler={EchoFooProp} path='/'/>;
644646
Router.run(routes, '/?foo=bar', function (Handler, state) {
645-
var html = React.renderToString(<Handler foo={state.query.foo} />);
647+
var html = ReactDOMServer.renderToString(<Handler foo={state.query.foo} />);
646648
expect(html).toMatch(/bar/);
647649
done();
648650
});
@@ -651,7 +653,7 @@ describe('Router', function () {
651653
it('renders with empty query string', function (done) {
652654
var routes = <Route handler={Foo} path='/'/>;
653655
Router.run(routes, '/?', function (Handler, state) {
654-
var html = React.renderToString(<Handler />);
656+
var html = ReactDOMServer.renderToString(<Handler />);
655657
expect(html).toMatch(/Foo/);
656658
done();
657659
});
@@ -706,7 +708,7 @@ describe('Router', function () {
706708

707709
var div = document.createElement('div');
708710
Router.run(routes, location, function (Handler, state) {
709-
React.render(<Handler/>, div);
711+
ReactDOM.render(<Handler/>, div);
710712
});
711713

712714
location.push('/spoon?filter=second');
@@ -720,7 +722,7 @@ describe('Router', function () {
720722
var Bar = React.createClass({
721723
statics: {
722724
willTransitionFrom: function (transition, component) {
723-
expect(div.querySelector('#bar')).toBe(component.getDOMNode());
725+
expect(div.querySelector('#bar')).toBe(ReactDOM.findDOMNode(component));
724726
done();
725727
}
726728
},
@@ -740,7 +742,7 @@ describe('Router', function () {
740742
var location = new TestLocation([ '/bar' ]);
741743

742744
Router.run(routes, location, function (Handler, state) {
743-
React.render(<Handler/>, div, function () {
745+
ReactDOM.render(<Handler/>, div, function () {
744746
location.push('/baz');
745747
});
746748
});
@@ -802,9 +804,9 @@ describe('Router', function () {
802804
Router.run(routes, location, function (Handler, state) {
803805

804806
// Calling render on the handler twice should be allowed
805-
React.render(<Handler data={{FooBar: 1}}/>, div);
807+
ReactDOM.render(<Handler data={{FooBar: 1}}/>, div);
806808

807-
React.render(<Handler data={{FooBar: 1}}/>, div, function () {
809+
ReactDOM.render(<Handler data={{FooBar: 1}}/>, div, function () {
808810
setTimeout(function() {
809811
steps.shift()();
810812
}, 1);
@@ -854,7 +856,7 @@ describe('Router.run', function () {
854856
it('matches a root route', function (done) {
855857
var routes = <Route path="/" handler={EchoFooProp} />;
856858
Router.run(routes, '/', function (Handler, state) {
857-
var html = React.renderToString(<Handler foo="bar"/>);
859+
var html = ReactDOMServer.renderToString(<Handler foo="bar"/>);
858860
expect(html).toMatch(/bar/);
859861
done();
860862
});
@@ -866,7 +868,7 @@ describe('Router.run', function () {
866868
<Route handler={Bar} path="/bar"/>
867869
];
868870
Router.run(routes, '/foo', function (Handler, state) {
869-
var html = React.renderToString(<Handler/>);
871+
var html = ReactDOMServer.renderToString(<Handler/>);
870872
expect(html).toMatch(/Foo/);
871873
done();
872874
});
@@ -879,7 +881,7 @@ describe('Router.run', function () {
879881
</Route>
880882
);
881883
Router.run(routes, '/foo', function (Handler, state) {
882-
var html = React.renderToString(<Handler/>);
884+
var html = ReactDOMServer.renderToString(<Handler/>);
883885
expect(html).toMatch(/Nested/);
884886
expect(html).toMatch(/Foo/);
885887
done();
@@ -894,7 +896,7 @@ describe('Router.run', function () {
894896
</Route>
895897
);
896898
Router.run(routes, '/Foo', function (Handler, state) {
897-
React.render(<Handler/>, div, function () {
899+
ReactDOM.render(<Handler/>, div, function () {
898900
expect(div.querySelectorAll('.Nested').length).toEqual(1);
899901
done();
900902
});
@@ -904,7 +906,7 @@ describe('Router.run', function () {
904906
it('supports dynamic segments', function (done) {
905907
var routes = <Route handler={EchoBarParam} path='/:bar'/>;
906908
Router.run(routes, '/d00d3tt3', function (Handler, state) {
907-
var html = React.renderToString(<Handler/>);
909+
var html = ReactDOMServer.renderToString(<Handler/>);
908910
expect(html).toMatch(/d00d3tt3/);
909911
done();
910912
});
@@ -917,7 +919,7 @@ describe('Router.run', function () {
917919
</Route>
918920
);
919921
Router.run(routes, '/foo/bar', function (Handler, state) {
920-
var html = React.renderToString(<Handler />);
922+
var html = ReactDOMServer.renderToString(<Handler />);
921923
expect(html).toMatch(/bar/);
922924
done();
923925
});
@@ -947,7 +949,7 @@ describe('Router.run', function () {
947949
});
948950

949951
Router.run(routes, location, function (Handler, state) {
950-
React.render(<Handler/>, div, function () {
952+
ReactDOM.render(<Handler/>, div, function () {
951953
steps.shift()();
952954
});
953955
});
@@ -989,7 +991,7 @@ describe('Router.run', function () {
989991
location: location,
990992
scrollBehavior: ScrollToTopBehavior
991993
}).run(function (Handler) {
992-
React.render(<Handler/>, div, function () {
994+
ReactDOM.render(<Handler/>, div, function () {
993995
if (renderCount === 0) {
994996
position = { x: 20, y: 50 };
995997
window.scrollTo(position.x, position.y);
@@ -1054,7 +1056,7 @@ describe('Router.run', function () {
10541056
renderCount = 0;
10551057

10561058
Router.run(routes, location, function (Handler) {
1057-
React.render(<Handler/>, div, function () {
1059+
ReactDOM.render(<Handler/>, div, function () {
10581060
if (renderCount === 0) {
10591061
position = { x: 20, y: 50 };
10601062
window.scrollTo(position.x, position.y);
@@ -1129,7 +1131,7 @@ describe('Router.run', function () {
11291131
location: location,
11301132
scrollBehavior: MockScrollBehavior
11311133
}).run(function (Handler) {
1132-
React.render(<Handler/>, div, function () {
1134+
ReactDOM.render(<Handler/>, div, function () {
11331135
if (!isDone) {
11341136
isDone = true;
11351137
done();

modules/__tests__/Routing-test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var expect = require('expect');
22
var React = require('react');
3+
var ReactDOMServer = require('react-dom/server');
34
var Router = require('../index');
45
var Route = require('../components/Route');
56
var { Foo, Bar, Nested } = require('../TestUtils');
@@ -14,7 +15,7 @@ describe('creating routes from ReactChildren', function () {
1415
];
1516

1617
Router.run(routes, '/foo', function (Handler, state) {
17-
var html = React.renderToString(<Handler/>);
18+
var html = ReactDOMServer.renderToString(<Handler/>);
1819
expect(html).toMatch(/Foo/);
1920
done();
2021
});
@@ -29,7 +30,7 @@ describe('creating routes from ReactChildren', function () {
2930
];
3031

3132
Router.run(routes, '/bar', function (Handler, state) {
32-
var html = React.renderToString(<Handler/>);
33+
var html = ReactDOMServer.renderToString(<Handler/>);
3334
expect(html).toMatch(/Bar/);
3435
done();
3536
});

modules/__tests__/State-test.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var assert = require('assert');
22
var React = require('react');
3+
var ReactDOM = require('react-dom');
34
var Router = require('../index');
45
var Route = require('../components/Route');
56
var TestLocation = require('../locations/TestLocation');
@@ -20,7 +21,7 @@ describe('State', function () {
2021

2122
Router.run(routes, location, function (Handler) {
2223
router = this;
23-
React.render(<Handler/>, div, function () {
24+
ReactDOM.render(<Handler/>, div, function () {
2425
assert(router.isActive('foo'));
2526
done();
2627
});
@@ -37,14 +38,14 @@ describe('State', function () {
3738
location = new TestLocation([ '/products/123/456?search=abc&limit=789' ]);
3839
Router.run(routes, location, function (Handler) {
3940
router = this;
40-
React.render(<Handler/>, div, function () {
41+
ReactDOM.render(<Handler/>, div, function () {
4142
done();
4243
});
4344
});
4445
});
4546

4647
afterEach(function () {
47-
React.unmountComponentAtNode(div);
48+
ReactDOM.unmountComponentAtNode(div);
4849
});
4950

5051
describe('and no query is used', function () {

modules/components/ActiveHandler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var React = require('react');
22
var ContextWrapper = require('./ContextWrapper')
3-
var assign = require('react/lib/Object.assign');
3+
var assign = require('object-assign');
44
var PropTypes = require('../PropTypes');
55

66
var REF_NAME = '__routeHandler__';

modules/components/Link.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var React = require('react');
2-
var assign = require('react/lib/Object.assign');
2+
var assign = require('object-assign');
33
var PropTypes = require('../PropTypes');
44

55
function isLeftClickEvent(event) {

0 commit comments

Comments
 (0)