UNPKG

1.28 kBJavaScriptView Raw
1/**
2 * @fileoverview Prevent usage of findDOMNode
3 * @author Yannick Croissant
4 */
5
6'use strict';
7
8const docsUrl = require('../util/docsUrl');
9
10// ------------------------------------------------------------------------------
11// Rule Definition
12// ------------------------------------------------------------------------------
13
14module.exports = {
15 meta: {
16 docs: {
17 description: 'Prevent usage of findDOMNode',
18 category: 'Best Practices',
19 recommended: true,
20 url: docsUrl('no-find-dom-node')
21 },
22 schema: []
23 },
24
25 create(context) {
26 // --------------------------------------------------------------------------
27 // Public
28 // --------------------------------------------------------------------------
29
30 return {
31
32 CallExpression(node) {
33 const callee = node.callee;
34
35 const isfindDOMNode = (callee.name === 'findDOMNode')
36 || (callee.property && callee.property.name === 'findDOMNode');
37 if (!isfindDOMNode) {
38 return;
39 }
40
41 context.report({
42 node: callee,
43 message: 'Do not use findDOMNode. It doesn’t work with function components and is deprecated in StrictMode. See https://reactjs.org/docs/react-dom.html#finddomnode'
44 });
45 }
46 };
47 }
48};