module.exports = {

  extends: ['./index'].map(require.resolve),

  plugins: [
    // https://github.com/yannickcr/eslint-plugin-react
    'react'
  ],

  // React-specific rules extend from
  // https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb/rules/react.js
  rules: {
    // http://eslint.org/docs/rules/no-shadow
    'no-shadow': ['error', {
      allow: [
        'state', // Mostly useful for Redux selector functions.
      ],
    }],

    // http://eslint.org/docs/rules/class-methods-use-this
    "class-methods-use-this": 0,

    // Only allow `.js` extensions, not `.jsx`.
    // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md
    'react/jsx-filename-extension': ['error', {
      extensions: ['.js'],
    }],

    // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md
    'react/forbid-prop-types': ['error', {
      forbid: [
        // TODO: Eventually, add 'object' too. Use some sort of DRY typedef?
        'any', 'array',
      ],
    }],
  },

};

module.exports = {

  extends: ['./index'].map(require.resolve),

  plugins: [
    // https://github.com/yannickcr/eslint-plugin-react
    'react'
  ],

  // React-specific rules extend from
  // https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb/rules/react.js
  rules: {
    // http://eslint.org/docs/rules/no-shadow
    'no-shadow': ['error', {
      allow: [
        'state', // Mostly useful for Redux selector functions.
      ],
    }],

    // http://eslint.org/docs/rules/class-methods-use-this
    "class-methods-use-this": 0,

    // Only allow `.js` extensions, not `.jsx`.
    // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md
    'react/jsx-filename-extension': ['error', {
      extensions: ['.js'],
    }],

    // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md
    'react/forbid-prop-types': ['error', {
      forbid: [
        // TODO: Eventually, add 'object' too. Use some sort of DRY typedef?
        'any', 'array',
      ],
    }],

    // Often, props are not required because they're... optional!
    // No reason to enforce defaults when `undefined` works perfectly well.
    // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/require-default-props.md
    "react/require-default-props": 'off',
  },

};

Disable react/require-default-props