diff --git a/packages/eslint-config-airbnb/package.json b/packages/eslint-config-airbnb/package.json
index c176f07d..1ec47d72 100644
--- a/packages/eslint-config-airbnb/package.json
+++ b/packages/eslint-config-airbnb/package.json
@@ -45,26 +45,26 @@
},
"homepage": "https://github.com/airbnb/javascript",
"dependencies": {
- "eslint-config-airbnb-base": "^5.0.2"
+ "eslint-config-airbnb-base": "^7.0.0"
},
"devDependencies": {
"babel-preset-airbnb": "^2.0.0",
"babel-tape-runner": "^2.0.1",
- "eslint": "^3.3.1",
- "eslint-find-rules": "^1.13.0",
- "eslint-plugin-import": "^1.13.0",
- "eslint-plugin-jsx-a11y": "^2.1.0",
- "eslint-plugin-react": "^6.1.2",
+ "eslint": "^3.4.0",
+ "eslint-find-rules": "^1.13.1",
+ "eslint-plugin-import": "^1.14.0",
+ "eslint-plugin-jsx-a11y": "^2.2.1",
+ "eslint-plugin-react": "^6.2.0",
"in-publish": "^2.0.0",
"react": ">= 0.13.0",
"safe-publish-latest": "^1.0.1",
"tape": "^4.6.0"
},
"peerDependencies": {
- "eslint": "^3.3.1",
- "eslint-plugin-jsx-a11y": "^2.1.0",
- "eslint-plugin-import": "^1.13.0",
- "eslint-plugin-react": "^6.1.2"
+ "eslint": "^3.4.0",
+ "eslint-plugin-jsx-a11y": "^2.2.1",
+ "eslint-plugin-import": "^1.14.0",
+ "eslint-plugin-react": "^6.2.0"
},
"engines": {
"node": ">= 4"
diff --git a/packages/eslint-config-airbnb/rules/react-a11y.js b/packages/eslint-config-airbnb/rules/react-a11y.js
index 76430261..3b7d684b 100644
--- a/packages/eslint-config-airbnb/rules/react-a11y.js
+++ b/packages/eslint-config-airbnb/rules/react-a11y.js
@@ -101,5 +101,15 @@ module.exports = {
// only allow
to have the "scope" attr
// https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/scope.md
'jsx-a11y/scope': 'error',
+
+ // require onClick be accompanied by onKeyUp/onKeyDown/onKeyPress
+ // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/click-events-have-key-events.md
+ // TODO: enable?
+ 'jsx-a11y/click-events-have-key-events': 'off',
+
+ // Enforce that DOM elements without semantic behavior not have interaction handlers
+ // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md
+ // TODO: enable
+ 'jsx-a11y/no-static-element-interactions': 'off',
},
};
diff --git a/packages/eslint-config-airbnb/rules/react.js b/packages/eslint-config-airbnb/rules/react.js
index 99215262..1d4eb2a4 100644
--- a/packages/eslint-config-airbnb/rules/react.js
+++ b/packages/eslint-config-airbnb/rules/react.js
@@ -252,6 +252,20 @@ module.exports = {
// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-danger-with-children.md
// TODO: enable, semver-major
'react/no-danger-with-children': 'off',
+
+ // Prevent unused propType definitions
+ // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unused-prop-types.md
+ // TODO: enable
+ 'react/no-unused-prop-types': ['off', {
+ customValidators: [
+ ],
+ skipShapeProps: false,
+ }],
+
+ // Require style prop value be an object or var
+ // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/style-prop-object.md
+ // TODO: enable
+ 'react/style-prop-object': 'off',
},
settings: {
diff --git a/packages/eslint-config-airbnb/test/test-react-order.js b/packages/eslint-config-airbnb/test/test-react-order.js
index 37d417ca..aa8aa192 100644
--- a/packages/eslint-config-airbnb/test/test-react-order.js
+++ b/packages/eslint-config-airbnb/test/test-react-order.js
@@ -26,7 +26,7 @@ function wrapComponent(body) {
import React from 'react';
export default class MyComponent extends React.Component {
-/* eslint no-empty-function: 0 */
+/* eslint no-empty-function: 0, class-methods-use-this: 0 */
${body}
}
`;
|