diff --git a/lib/rules/jsx-no-constructed-context-values.js b/lib/rules/jsx-no-constructed-context-values.js index af7c9575df..f1cc2c1d4d 100644 --- a/lib/rules/jsx-no-constructed-context-values.js +++ b/lib/rules/jsx-no-constructed-context-values.js @@ -6,6 +6,7 @@ 'use strict'; +const Components = require('../util/Components'); const docsUrl = require('../util/docsUrl'); const report = require('../util/report'); @@ -139,9 +140,13 @@ module.exports = { messages, }, - create(context) { + // eslint-disable-next-line arrow-body-style + create: Components.detect((context, components, utils) => { return { JSXOpeningElement(node) { + if (!utils.getParentComponent(node)) { + return; + } const openingElementName = node.name; if (openingElementName.type !== 'JSXMemberExpression') { // Has no member @@ -214,5 +219,5 @@ module.exports = { }); }, }; - }, + }), }; diff --git a/tests/lib/rules/jsx-no-constructed-context-values.js b/tests/lib/rules/jsx-no-constructed-context-values.js index 1ec0592382..c8c9dee995 100644 --- a/tests/lib/rules/jsx-no-constructed-context-values.js +++ b/tests/lib/rules/jsx-no-constructed-context-values.js @@ -31,13 +31,13 @@ const ruleTester = new RuleTester({ parserOptions }); ruleTester.run('react-no-constructed-context-values', rule, { valid: parsers.all([ { - code: '', + code: 'const Component = () => ', }, { - code: '', + code: 'const Component = () => ', }, { - code: '', + code: 'const Component = () => ', }, { code: 'function Component() { const foo = useMemo(() => { return {} }, []); return ()}', @@ -137,6 +137,16 @@ ruleTester.run('react-no-constructed-context-values', rule, { } `, }, + { + code: ` + const root = ReactDOM.createRoot(document.getElementById('root')); + root.render( + + + + ); + `, + }, ]), invalid: parsers.all([ {