{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "extends": [
    "airbnb",
    "airbnb-typescript",
    "prettier",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:react/recommended",
    "plugin:react-hooks/recommended"
  ],
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": ["error"]
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "overrides": [
    {
      "files": ["*.ts", "*.tsx"],
      "rules": {
        // Allow state modification in reduce and Redux reducers
        "no-param-reassign": ["error", {
          "props": true,
          "ignorePropertyModificationsFor": [
            "acc", "state"
          ]
        }],
        // For https://stackoverflow.com/questions/55844608/stuck-with-eslint-error-i-e-separately-loops-should-be-avoided-in-favor-of-arra
        "no-restricted-syntax": "off",
        "import/prefer-default-export": "off",
        "no-underscore-dangle": "off",
        "jsx-a11y/no-static-element-interactions": "off",
        "jsx-a11y/click-events-have-key-events": "off",
        // For https://github.com/airbnb/javascript/issues/1885
        "jsx-a11y/label-has-associated-control": [ 2, {
          "required": {
              "some": [ "nesting", "id" ]
          }
        }],        
        "react/no-array-index-key": "off"
      },"parserOptions": {
        "project": ["**/tsconfig.json"]
      }
    }
  ]
}
