From 30ef2b8a1659c45999d37ff6037d699bcd1ca184 Mon Sep 17 00:00:00 2001 From: Duncan Beevers Date: Sun, 12 Dec 2021 19:27:56 -0800 Subject: [PATCH] fixup! [New] Symmetric useState hook variable names --- lib/rules/hook-use-state.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/rules/hook-use-state.js b/lib/rules/hook-use-state.js index 74f05049f4..db8fd9ce84 100644 --- a/lib/rules/hook-use-state.js +++ b/lib/rules/hook-use-state.js @@ -154,21 +154,19 @@ module.exports = { const isSingleGetter = valueVariable && variableNodes.length === 1; const isUseStateCalledWithSingleArgument = node.arguments.length === 1; if (isSingleGetter && isUseStateCalledWithSingleArgument) { - const useMemoReactImportSpecifier = namedReactImports ? namedReactImports.find((specifier) => specifier.imported.name === 'useMemo') : undefined; - const sourceCode = context.getSourceCode(); - const useStateArgumentSourceCode = sourceCode.getText(node.arguments[0]); + const useMemoReactImportSpecifier = namedReactImports + && namedReactImports.find((specifier) => specifier.imported.name === 'useMemo'); suggestions.unshift({ desc: 'Replace useState call with useMemo', fix: (fixer) => { - const useMemoImportName = useMemoReactImportSpecifier && useMemoReactImportSpecifier.local.name; - - const useMemoReference = useMemoImportName - || (defaultReactImportName + const useMemoCode = (useMemoReactImportSpecifier + && useMemoReactImportSpecifier.local.name) + || (defaultReactImportName && `${defaultReactImportName}.useMemo`) - || 'useMemo'; + || 'useMemo'; - const fixes = [ + return [ // Add useMemo import, if necessary useStateReactImportSpecifier && (!useMemoReactImportSpecifier || defaultReactImportName) @@ -178,11 +176,9 @@ module.exports = { // Convert useState call to useMemo + arrow function + dependency array fixer.replaceTextRange( node.range, - `${useMemoReference}(() => ${useStateArgumentSourceCode}, [])` + `${useMemoCode}(() => ${context.getSourceCode().getText(node.arguments[0])}, [])` ), ].filter(Boolean); - - return fixes; }, }); }