Skip to content

Commit a54ed49

Browse files
committed
Merge pull request #2375 from sebmarkbage/droplegacyfactories
Drop Legacy Factories
2 parents 581085e + 9b36b04 commit a54ed49

25 files changed

+230
-486
lines changed

src/browser/ReactDOM.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
var ReactElement = require('ReactElement');
1616
var ReactElementValidator = require('ReactElementValidator');
17-
var ReactLegacyElement = require('ReactLegacyElement');
1817

1918
var mapObject = require('mapObject');
2019

@@ -26,13 +25,9 @@ var mapObject = require('mapObject');
2625
*/
2726
function createDOMFactory(tag) {
2827
if (__DEV__) {
29-
return ReactLegacyElement.markNonLegacyFactory(
30-
ReactElementValidator.createFactory(tag)
31-
);
28+
return ReactElementValidator.createFactory(tag);
3229
}
33-
return ReactLegacyElement.markNonLegacyFactory(
34-
ReactElement.createFactory(tag)
35-
);
30+
return ReactElement.createFactory(tag);
3631
}
3732

3833
/**

src/browser/__tests__/ReactDOM-test.js

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -114,24 +114,4 @@ describe('ReactDOM', function() {
114114
expect(element.type).toBe('div');
115115
expect(console.warn.argsForCall.length).toBe(0);
116116
});
117-
118-
it('warns but allow dom factories to be used in createFactory', function() {
119-
spyOn(console, 'warn');
120-
var factory = React.createFactory(React.DOM.div);
121-
expect(factory().type).toBe('div');
122-
expect(console.warn.argsForCall.length).toBe(1);
123-
expect(console.warn.argsForCall[0][0]).toContain(
124-
'Do not pass React.DOM.div'
125-
);
126-
});
127-
128-
it('warns but allow dom factories to be used in createElement', function() {
129-
spyOn(console, 'warn');
130-
var element = React.createElement(React.DOM.div);
131-
expect(element.type).toBe('div');
132-
expect(console.warn.argsForCall.length).toBe(1);
133-
expect(console.warn.argsForCall[0][0]).toContain(
134-
'Do not pass React.DOM.div'
135-
);
136-
});
137117
});

src/browser/ui/React.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ var ReactDOM = require('ReactDOM');
2424
var ReactDOMComponent = require('ReactDOMComponent');
2525
var ReactDefaultInjection = require('ReactDefaultInjection');
2626
var ReactInstanceHandles = require('ReactInstanceHandles');
27-
var ReactLegacyElement = require('ReactLegacyElement');
2827
var ReactMount = require('ReactMount');
2928
var ReactMultiChild = require('ReactMultiChild');
3029
var ReactPerf = require('ReactPerf');
@@ -46,14 +45,6 @@ if (__DEV__) {
4645
createFactory = ReactElementValidator.createFactory;
4746
}
4847

49-
// TODO: Drop legacy elements once classes no longer export these factories
50-
createElement = ReactLegacyElement.wrapCreateElement(
51-
createElement
52-
);
53-
createFactory = ReactLegacyElement.wrapCreateFactory(
54-
createFactory
55-
);
56-
5748
var render = ReactPerf.measure('React', 'render', ReactMount.render);
5849

5950
var React = {
@@ -77,7 +68,6 @@ var React = {
7768
renderToString: ReactServerRendering.renderToString,
7869
renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,
7970
unmountComponentAtNode: ReactMount.unmountComponentAtNode,
80-
isValidClass: ReactLegacyElement.isValidClass,
8171
isValidElement: ReactElement.isValidElement,
8272
withContext: ReactContext.withContext,
8373

src/browser/ui/ReactMount.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ var DOMProperty = require('DOMProperty');
1515
var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
1616
var ReactCurrentOwner = require('ReactCurrentOwner');
1717
var ReactElement = require('ReactElement');
18-
var ReactLegacyElement = require('ReactLegacyElement');
1918
var ReactInstanceHandles = require('ReactInstanceHandles');
2019
var ReactPerf = require('ReactPerf');
2120

@@ -27,10 +26,6 @@ var invariant = require('invariant');
2726
var shouldUpdateReactComponent = require('shouldUpdateReactComponent');
2827
var warning = require('warning');
2928

30-
var createElement = ReactLegacyElement.wrapCreateElement(
31-
ReactElement.createElement
32-
);
33-
3429
var SEPARATOR = ReactInstanceHandles.SEPARATOR;
3530

3631
var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
@@ -342,7 +337,7 @@ var ReactMount = {
342337
typeof nextElement === 'string' ?
343338
' Instead of passing an element string, make sure to instantiate ' +
344339
'it by passing it to React.createElement.' :
345-
ReactLegacyElement.isValidFactory(nextElement) ?
340+
typeof nextElement === 'function' ?
346341
' Instead of passing a component class, make sure to instantiate ' +
347342
'it by passing it to React.createElement.' :
348343
// Check if it quacks like a element
@@ -394,7 +389,7 @@ var ReactMount = {
394389
* @return {ReactComponent} Component instance rendered in `container`.
395390
*/
396391
constructAndRenderComponent: function(constructor, props, container) {
397-
var element = createElement(constructor, props);
392+
var element = ReactElement.createElement(constructor, props);
398393
return ReactMount.render(element, container);
399394
},
400395

src/browser/ui/dom/components/ReactDOMButton.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@ var AutoFocusMixin = require('AutoFocusMixin');
1515
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
1616
var ReactClass = require('ReactClass');
1717
var ReactElement = require('ReactElement');
18-
var ReactDOM = require('ReactDOM');
1918

2019
var keyMirror = require('keyMirror');
2120

22-
// Store a reference to the <button> `ReactDOMComponent`. TODO: use string
23-
var button = ReactElement.createFactory(ReactDOM.button.type);
21+
var button = ReactElement.createFactory('button');
2422

2523
var mouseListenerNames = keyMirror({
2624
onClick: true,

src/browser/ui/dom/components/ReactDOMForm.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ var LocalEventTrapMixin = require('LocalEventTrapMixin');
1616
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
1717
var ReactClass = require('ReactClass');
1818
var ReactElement = require('ReactElement');
19-
var ReactDOM = require('ReactDOM');
2019

21-
// Store a reference to the <form> `ReactDOMComponent`. TODO: use string
22-
var form = ReactElement.createFactory(ReactDOM.form.type);
20+
var form = ReactElement.createFactory('form');
2321

2422
/**
2523
* Since onSubmit doesn't bubble OR capture on the top level in IE8, we need

src/browser/ui/dom/components/ReactDOMImg.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ var LocalEventTrapMixin = require('LocalEventTrapMixin');
1616
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
1717
var ReactClass = require('ReactClass');
1818
var ReactElement = require('ReactElement');
19-
var ReactDOM = require('ReactDOM');
2019

21-
// Store a reference to the <img> `ReactDOMComponent`. TODO: use string
22-
var img = ReactElement.createFactory(ReactDOM.img.type);
20+
var img = ReactElement.createFactory('img');
2321

2422
/**
2523
* Since onLoad doesn't bubble OR capture on the top level in IE8, we need to

src/browser/ui/dom/components/ReactDOMInput.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@ var LinkedValueUtils = require('LinkedValueUtils');
1717
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
1818
var ReactClass = require('ReactClass');
1919
var ReactElement = require('ReactElement');
20-
var ReactDOM = require('ReactDOM');
2120
var ReactMount = require('ReactMount');
2221
var ReactUpdates = require('ReactUpdates');
2322

2423
var assign = require('Object.assign');
2524
var invariant = require('invariant');
2625

27-
// Store a reference to the <input> `ReactDOMComponent`. TODO: use string
28-
var input = ReactElement.createFactory(ReactDOM.input.type);
26+
var input = ReactElement.createFactory('input');
2927

3028
var instancesByReactID = {};
3129

src/browser/ui/dom/components/ReactDOMOption.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@
1414
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
1515
var ReactClass = require('ReactClass');
1616
var ReactElement = require('ReactElement');
17-
var ReactDOM = require('ReactDOM');
1817

1918
var warning = require('warning');
2019

21-
// Store a reference to the <option> `ReactDOMComponent`. TODO: use string
22-
var option = ReactElement.createFactory(ReactDOM.option.type);
20+
var option = ReactElement.createFactory('option');
2321

2422
/**
2523
* Implements an <option> native component that warns when `selected` is set.

src/browser/ui/dom/components/ReactDOMSelect.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,11 @@ var LinkedValueUtils = require('LinkedValueUtils');
1616
var ReactBrowserComponentMixin = require('ReactBrowserComponentMixin');
1717
var ReactClass = require('ReactClass');
1818
var ReactElement = require('ReactElement');
19-
var ReactDOM = require('ReactDOM');
2019
var ReactUpdates = require('ReactUpdates');
2120

2221
var assign = require('Object.assign');
2322

24-
// Store a reference to the <select> `ReactDOMComponent`. TODO: use string
25-
var select = ReactElement.createFactory(ReactDOM.select.type);
23+
var select = ReactElement.createFactory('select');
2624

2725
function updateWithPendingValueIfMounted() {
2826
/*jshint validthis:true */

0 commit comments

Comments
 (0)