Skip to content

Commit 95acd93

Browse files
authored
Merge pull request #1341 from DianaSuvorova/flowShape
[no-unused-prop-types] flow should respect skipShapeProps
2 parents f0487f2 + 942e594 commit 95acd93

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

lib/rules/no-unused-prop-types.js

+3
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,9 @@ module.exports = {
431431
}
432432
return true;
433433
case 'ObjectTypeAnnotation':
434+
if (skipShapeProps) {
435+
return true;
436+
}
434437
const shapeTypeDefinition = {
435438
type: 'shape',
436439
children: []

tests/lib/rules/no-unused-prop-types.js

+25
Original file line numberDiff line numberDiff line change
@@ -1994,6 +1994,24 @@ ruleTester.run('no-unused-prop-types', rule, {
19941994
'export default connect(mapStateToProps, mapDispatchToProps)(HellowQueries)'
19951995
].join('\n'),
19961996
parser: 'babel-eslint'
1997+
}, {
1998+
// issue #1335
1999+
code: [
2000+
'type Props = {',
2001+
' foo: {',
2002+
' bar: boolean',
2003+
' }',
2004+
'};',
2005+
2006+
'class DigitalServices extends React.Component {',
2007+
' props: Props',
2008+
' render() {',
2009+
' const { foo } = this.props;',
2010+
' return <div>{foo.bar}</div>;',
2011+
' }',
2012+
'}'
2013+
].join('\n'),
2014+
parser: 'babel-eslint'
19972015
}
19982016
],
19992017

@@ -2591,6 +2609,7 @@ ruleTester.run('no-unused-prop-types', rule, {
25912609
'}'
25922610
].join('\n'),
25932611
parser: 'babel-eslint',
2612+
options: [{skipShapeProps: false}],
25942613
errors: [
25952614
{message: '\'name.unused\' PropType is defined but prop is never used'}
25962615
]
@@ -2605,6 +2624,7 @@ ruleTester.run('no-unused-prop-types', rule, {
26052624
'}'
26062625
].join('\n'),
26072626
parser: 'babel-eslint',
2627+
options: [{skipShapeProps: false}],
26082628
errors: [
26092629
{message: '\'name.unused\' PropType is defined but prop is never used'}
26102630
]
@@ -2618,6 +2638,7 @@ ruleTester.run('no-unused-prop-types', rule, {
26182638
'}'
26192639
].join('\n'),
26202640
parser: 'babel-eslint',
2641+
options: [{skipShapeProps: false}],
26212642
errors: [
26222643
{message: '\'person.name.unused\' PropType is defined but prop is never used'}
26232644
]
@@ -2632,6 +2653,7 @@ ruleTester.run('no-unused-prop-types', rule, {
26322653
'}'
26332654
].join('\n'),
26342655
parser: 'babel-eslint',
2656+
options: [{skipShapeProps: false}],
26352657
errors: [
26362658
{message: '\'person.name.unused\' PropType is defined but prop is never used'}
26372659
]
@@ -2650,6 +2672,7 @@ ruleTester.run('no-unused-prop-types', rule, {
26502672
'}'
26512673
].join('\n'),
26522674
parser: 'babel-eslint',
2675+
options: [{skipShapeProps: false}],
26532676
errors: [
26542677
{message: '\'people.*.name.unused\' PropType is defined but prop is never used'}
26552678
]
@@ -2669,6 +2692,7 @@ ruleTester.run('no-unused-prop-types', rule, {
26692692
'}'
26702693
].join('\n'),
26712694
parser: 'babel-eslint',
2695+
options: [{skipShapeProps: false}],
26722696
errors: [
26732697
{message: '\'people.*.name.unused\' PropType is defined but prop is never used'}
26742698
]
@@ -2683,6 +2707,7 @@ ruleTester.run('no-unused-prop-types', rule, {
26832707
'}'
26842708
].join('\n'),
26852709
parser: 'babel-eslint',
2710+
options: [{skipShapeProps: false}],
26862711
errors: [
26872712
{message: '\'result.ok\' PropType is defined but prop is never used'},
26882713
{message: '\'result.ok\' PropType is defined but prop is never used'}

0 commit comments

Comments
 (0)