Skip to content

Commit eae04d4

Browse files
authored
Merge pull request #1148 from Calyhre/feature/deprecations-react-15.5
Add new deprecations from 15.5.0
2 parents fd90dae + 3da1140 commit eae04d4

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

docs/rules/no-deprecated.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ React.findDOMNode(this.refs.foo);
1616
React.renderToString(<MyComponent />);
1717

1818
React.renderToStaticMarkup(<MyComponent />);
19+
20+
React.createClass({ /* Class object */ });
21+
22+
const propTypes = {
23+
foo: React.PropTypes.bar,
24+
};
1925
```
2026

2127
The following patterns are not considered warnings:

lib/rules/no-deprecated.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ module.exports = {
6464
deprecated.MemberExpression['Perf.printDOM'] = ['15.0.0', 'Perf.printOperations'];
6565
deprecated.MemberExpression['ReactPerf.getMeasurementsSummaryMap'] = ['15.0.0', 'ReactPerf.getWasted'];
6666
deprecated.MemberExpression['Perf.getMeasurementsSummaryMap'] = ['15.0.0', 'Perf.getWasted'];
67+
// 15.5.0
68+
deprecated.MemberExpression[pragma + '.createClass'] = ['15.5.0', 'the npm module create-react-class'];
69+
deprecated.MemberExpression[pragma + '.PropTypes'] = ['15.5.0', 'the npm module prop-types'];
6770

6871
return deprecated;
6972
}

tests/lib/rules/no-deprecated.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ ruleTester.run('no-deprecated', rule, {
2323

2424
valid: [
2525
// Not deprecated
26-
'var MyClass = React.createClass({});',
2726
'var element = React.createElement(\'p\', {}, null);',
2827
'var clone = React.cloneElement(element);',
2928
'ReactDOM.render(element, container);',
@@ -32,7 +31,9 @@ ruleTester.run('no-deprecated', rule, {
3231
'ReactDOMServer.renderToString(element);',
3332
'ReactDOMServer.renderToStaticMarkup(element);',
3433
// Deprecated in a later version
35-
{code: 'React.renderComponent()', settings: {react: {version: '0.11.0'}}}
34+
{code: 'React.renderComponent()', settings: {react: {version: '0.11.0'}}},
35+
{code: 'React.createClass()', settings: {react: {version: '15.4.0'}}},
36+
{code: 'React.PropTypes', settings: {react: {version: '15.4.0'}}}
3637
],
3738

3839
invalid: [{
@@ -94,6 +95,22 @@ ruleTester.run('no-deprecated', rule, {
9495
'use ReactDOMServer.renderToStaticMarkup instead'
9596
)
9697
}]
98+
}, {
99+
code: 'React.createClass({});',
100+
errors: [{
101+
message: 'React.createClass is deprecated since React 15.5.0, use the npm module create-react-class instead'
102+
}]
103+
}, {
104+
code: 'Foo.createClass({});',
105+
settings: {react: {pragma: 'Foo'}},
106+
errors: [{
107+
message: 'Foo.createClass is deprecated since React 15.5.0, use the npm module create-react-class instead'
108+
}]
109+
}, {
110+
code: 'React.PropTypes',
111+
errors: [{
112+
message: 'React.PropTypes is deprecated since React 15.5.0, use the npm module prop-types instead'
113+
}]
97114
}]
98115

99116
});

0 commit comments

Comments
 (0)