@@ -32,24 +32,24 @@ module.exports = {
3232 } ,
3333
3434 create ( context ) {
35- let isReactImported = false ;
36- let reactUseStateLocal ;
35+ let reactImportLocalName ;
36+ let reactUseStateLocalName ;
3737
3838 return {
3939 CallExpression ( node ) {
4040 const isReactUseStateCall = (
41- isReactImported
41+ reactImportLocalName
4242 && node . callee . type === 'MemberExpression'
4343 && node . callee . object . type === 'Identifier'
44- && node . callee . object . name === 'React'
44+ && node . callee . object . name === reactImportLocalName
4545 && node . callee . property . type === 'Identifier'
4646 && node . callee . property . name === 'useState'
4747 ) ;
4848
4949 const isUseStateCall = (
50- reactUseStateLocal
50+ reactUseStateLocalName
5151 && node . callee . type === 'Identifier'
52- && node . callee . name === reactUseStateLocal
52+ && node . callee . name === reactUseStateLocalName
5353 ) ;
5454
5555 // Ignore unless this is a useState() or React.useState() call.
@@ -102,7 +102,10 @@ module.exports = {
102102 }
103103 } ,
104104 ImportDeclaration ( node ) {
105- isReactImported = node . source . type === 'Literal' && node . source . value === 'react' ;
105+ const isReactImported = node . source . type === 'Literal' && node . source . value === 'react' ;
106+ const reactDefaultSpecifier = node . specifiers . find ( ( specifier ) => specifier . type === 'ImportDefaultSpecifier' ) ;
107+ reactImportLocalName = reactDefaultSpecifier ? reactDefaultSpecifier . local . name : undefined ;
108+
106109 const reactUseStateSpecifier = isReactImported
107110 ? node . specifiers . find (
108111 ( specifier ) => (
@@ -112,7 +115,7 @@ module.exports = {
112115 )
113116 : undefined ;
114117
115- reactUseStateLocal = reactUseStateSpecifier
118+ reactUseStateLocalName = reactUseStateSpecifier
116119 ? reactUseStateSpecifier . local . name
117120 : undefined ;
118121 }
0 commit comments