{
  "plugins": ["react", "react-hooks"],
  "settings": { "linkComponents": [{ "name": "Link", "linkAttribute": "to" }] },
  "rules": {
    "react-hooks/exhaustive-deps": "warn",
    "react-hooks/rules-of-hooks": "error",
    "react/button-has-type": "error",
    "react/forbid-foreign-prop-types": "error",
    "react/no-access-state-in-setstate": "error",
    "react/no-children-prop": "error",
    "react/no-danger-with-children": "error",
    "react/no-deprecated": "error",
    "react/no-did-mount-set-state": "warn",
    "react/no-did-update-set-state": "error",
    "react/no-direct-mutation-state": "error",
    "react/no-find-dom-node": "error",
    "react/no-is-mounted": "error",
    "react/no-multi-comp": ["warn", { "ignoreStateless": true }],
    "react/no-redundant-should-component-update": "error",
    "react/no-render-return-value": "error",
    "react/no-string-refs": ["error", { "noTemplateLiterals": true }],
    "react/no-this-in-sfc": "error",
    "react/no-typos": "error",
    "react/no-unescaped-entities": [
      "error",
      {
        "forbid": [
          { "char": "\"", "alternatives": ["&quot;"] },
          { "char": ">", "alternatives": ["&gt;"] },
          { "char": "}", "alternatives": ["&#125;"] }
        ]
      }
    ],
    "react/no-unknown-property": "error",
    "react/no-will-update-set-state": "error",
    "react/require-render-return": "error",
    "react/self-closing-comp": "error",
    "react/style-prop-object": "error",
    "react/void-dom-elements-no-children": "error",
    "react/jsx-boolean-value": "error",
    "react/jsx-key": ["error", { "checkFragmentShorthand": true }],
    "react/jsx-max-depth": ["error", { "max": 6 }],
    "react/jsx-no-bind": "error",
    "react/jsx-no-comment-textnodes": "error",
    "react/jsx-no-duplicate-props": "error",
    "react/jsx-no-script-url": ["error", [{ "name": "Link", "props": ["to"] }]],
    "react/jsx-no-target-blank": ["error", { "enforceDynamicLinks": "always" }],
    "react/jsx-no-undef": ["error", { "allowGlobals": true }],
    "react/jsx-no-useless-fragment": "error",
    "react/jsx-pascal-case": ["error", { "allowAllCaps": false }],
    "react/jsx-uses-react": "error",
    "react/jsx-uses-vars": "error"
  }
}
