@@ -154,21 +154,19 @@ module.exports = {
154
154
const isSingleGetter = valueVariable && variableNodes . length === 1 ;
155
155
const isUseStateCalledWithSingleArgument = node . arguments . length === 1 ;
156
156
if ( isSingleGetter && isUseStateCalledWithSingleArgument ) {
157
- const useMemoReactImportSpecifier = namedReactImports ? namedReactImports . find ( ( specifier ) => specifier . imported . name === 'useMemo' ) : undefined ;
158
- const sourceCode = context . getSourceCode ( ) ;
159
- const useStateArgumentSourceCode = sourceCode . getText ( node . arguments [ 0 ] ) ;
157
+ const useMemoReactImportSpecifier = namedReactImports
158
+ && namedReactImports . find ( ( specifier ) => specifier . imported . name === 'useMemo' ) ;
160
159
161
160
suggestions . unshift ( {
162
161
desc : 'Replace useState call with useMemo' ,
163
162
fix : ( fixer ) => {
164
- const useMemoImportName = useMemoReactImportSpecifier && useMemoReactImportSpecifier . local . name ;
165
-
166
- const useMemoReference = useMemoImportName
167
- || ( defaultReactImportName
163
+ const useMemoCode = ( useMemoReactImportSpecifier
164
+ && useMemoReactImportSpecifier . local . name )
165
+ || ( defaultReactImportName
168
166
&& `${ defaultReactImportName } .useMemo` )
169
- || 'useMemo' ;
167
+ || 'useMemo' ;
170
168
171
- const fixes = [
169
+ return [
172
170
// Add useMemo import, if necessary
173
171
useStateReactImportSpecifier
174
172
&& ( ! useMemoReactImportSpecifier || defaultReactImportName )
@@ -178,11 +176,9 @@ module.exports = {
178
176
// Convert useState call to useMemo + arrow function + dependency array
179
177
fixer . replaceTextRange (
180
178
node . range ,
181
- `${ useMemoReference } (() => ${ useStateArgumentSourceCode } , [])`
179
+ `${ useMemoCode } (() => ${ context . getSourceCode ( ) . getText ( node . arguments [ 0 ] ) } , [])`
182
180
) ,
183
181
] . filter ( Boolean ) ;
184
-
185
- return fixes ;
186
182
} ,
187
183
} ) ;
188
184
}
0 commit comments