@@ -576,65 +576,65 @@ function componentRule(rule, context) {
576
576
} ,
577
577
578
578
/**
579
- * Get the parent stateless component node from the current scope
580
- *
581
- * @returns {ASTNode } component node, null if we are not in a component
579
+ * @param {ASTNode } node
580
+ * @returns {boolean }
582
581
*/
583
- getParentStatelessComponent ( ) {
584
- /**
585
- * @param {ASTNode } node
586
- * @returns {boolean }
587
- */
588
- function isInAllowedPositiionForComponent ( node ) {
589
- switch ( node . parent . type ) {
590
- case 'VariableDeclarator' :
591
- case 'AssignmentExpression' :
592
- case 'Property' :
593
- case 'ReturnStatement' :
594
- case 'ExportDefaultDeclaration' : {
595
- return true ;
596
- }
597
- case 'SequenceExpression' : {
598
- return isInAllowedPositiionForComponent ( node . parent ) &&
599
- node === node . parent . expressions [ node . parent . expressions . length - 1 ] ;
600
- }
601
- default :
602
- return false ;
582
+ isInAllowedPositionForComponent ( node ) {
583
+ switch ( node . parent . type ) {
584
+ case 'VariableDeclarator' :
585
+ case 'AssignmentExpression' :
586
+ case 'Property' :
587
+ case 'ReturnStatement' :
588
+ case 'ExportDefaultDeclaration' : {
589
+ return true ;
603
590
}
591
+ case 'SequenceExpression' : {
592
+ return utils . isInAllowedPositionForComponent ( node . parent ) &&
593
+ node === node . parent . expressions [ node . parent . expressions . length - 1 ] ;
594
+ }
595
+ default :
596
+ return false ;
604
597
}
598
+ } ,
605
599
606
- /**
607
- * Get node if node is a stateless component, or node.parent in cases like
608
- * `React.memo` or `React.forwardRef`. Otherwise returns `undefined`.
609
- * @param {ASTNode } node
610
- * @returns {ASTNode | undefined }
611
- */
612
- function getStatelessComponent ( node ) {
613
- if ( node . type === 'FunctionDeclaration' ) {
614
- if ( utils . isReturningJSXOrNull ( node ) ) {
615
- return node ;
616
- }
600
+ /**
601
+ * Get node if node is a stateless component, or node.parent in cases like
602
+ * `React.memo` or `React.forwardRef`. Otherwise returns `undefined`.
603
+ * @param {ASTNode } node
604
+ * @returns {ASTNode | undefined }
605
+ */
606
+ getStatelessComponent ( node ) {
607
+ if ( node . type === 'FunctionDeclaration' ) {
608
+ if ( utils . isReturningJSXOrNull ( node ) ) {
609
+ return node ;
617
610
}
611
+ }
618
612
619
- if ( node . type === 'FunctionExpression' || node . type === 'ArrowFunctionExpression' ) {
620
- if ( isInAllowedPositiionForComponent ( node ) && utils . isReturningJSXOrNull ( node ) ) {
621
- return node ;
622
- }
623
-
624
- // Case like `React.memo(() => <></>)` or `React.forwardRef(...)`
625
- const pragmaComponentWrapper = utils . getPragmaComponentWrapper ( node ) ;
626
- if ( pragmaComponentWrapper ) {
627
- return pragmaComponentWrapper ;
628
- }
613
+ if ( node . type === 'FunctionExpression' || node . type === 'ArrowFunctionExpression' ) {
614
+ if ( utils . isInAllowedPositionForComponent ( node ) && utils . isReturningJSXOrNull ( node ) ) {
615
+ return node ;
629
616
}
630
617
631
- return undefined ;
618
+ // Case like `React.memo(() => <></>)` or `React.forwardRef(...)`
619
+ const pragmaComponentWrapper = utils . getPragmaComponentWrapper ( node ) ;
620
+ if ( pragmaComponentWrapper ) {
621
+ return pragmaComponentWrapper ;
622
+ }
632
623
}
633
624
625
+ return undefined ;
626
+ } ,
627
+
628
+ /**
629
+ * Get the parent stateless component node from the current scope
630
+ *
631
+ * @returns {ASTNode } component node, null if we are not in a component
632
+ */
633
+ getParentStatelessComponent ( ) {
634
634
let scope = context . getScope ( ) ;
635
635
while ( scope ) {
636
636
const node = scope . block ;
637
- const statelessComponent = getStatelessComponent ( node ) ;
637
+ const statelessComponent = utils . getStatelessComponent ( node ) ;
638
638
if ( statelessComponent ) {
639
639
return statelessComponent ;
640
640
}
0 commit comments