diff --git a/lib/rules/no-literal-string.js b/lib/rules/no-literal-string.js index be3b6bc..e3bf21b 100644 --- a/lib/rules/no-literal-string.js +++ b/lib/rules/no-literal-string.js @@ -97,9 +97,16 @@ module.exports = { function filterOutJSX(node) { if (onlyValidateJSX) { - const isInsideJSX = context - .getAncestors() - .some(item => ['JSXElement', 'JSXFragment'].includes(item.type)); + let isInsideJSX = false; + const ancestors = [...context.getAncestors()].reverse(); + for (const ancestor of ancestors) { + if (ancestor.type === 'CallExpression') { + break; + } else if (['JSXElement', 'JSXFragment'].includes(ancestor.type)) { + isInsideJSX = true; + break; + } + } if (!isInsideJSX) return true; diff --git a/tests/lib/rules/no-literal-string/jsx-only.js b/tests/lib/rules/no-literal-string/jsx-only.js index 5aa4eaf..7ee0586 100644 --- a/tests/lib/rules/no-literal-string/jsx-only.js +++ b/tests/lib/rules/no-literal-string/jsx-only.js @@ -10,8 +10,26 @@ const cases = { code: `