{
  "env": {
    "browser": true,
    "es2021": true
  },
  "extends": [
    "plugin:react/recommended",
    "plugin:react-hooks/recommended",
    "prettier"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": "./tsconfig.json",
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 13,
    "sourceType": "module"
  },
  "plugins": ["react", "react-hooks", "@typescript-eslint"],
  "ignorePatterns": ["*.config.*", "*.d.ts"],
  "rules": {
    "react/destructuring-assignment": "off",
    "@typescript-eslint/naming-convention": "off",
    "react-hooks/rules-of-hooks": "error",
    "react/no-array-index-key": "off",
    "react/jsx-filename-extension": [
      1,
      {
        "extensions": [".tsx"]
      }
    ],
    "import/prefer-default-export": "off",
    "prefer-destructuring": "off",
    "radix": ["error", "as-needed"],
    "prefer-const": [
      "error",
      {
        "destructuring": "all"
      }
    ],
    "no-use-before-define": "off",
    "no-plusplus": "off",
    "arrow-body-style": "off",
    "@typescript-eslint/no-use-before-define": "off",
    "@typescript-eslint/lines-between-class-members": "off",
    "no-unused-expressions": "off",
    "@typescript-eslint/no-unused-expressions": "error",
    "no-param-reassign": "off",
    "class-methods-use-this": "off",
    "consistent-return": "off",
    "default-case": "off",
    "no-return-assign": ["error", "except-parens"],
    "react/react-in-jsx-scope": "off",
    "react/require-default-props": "off",
    "react/prop-types": "off",
    "react/jsx-props-no-spreading": "off",
    "react/jsx-fragments": "off",
    "react/function-component-definition": "off",
    "import/no-extraneous-dependencies": "off",
    "react/display-name": "off",
    "react/no-unstable-nested-components": ["error", {"allowAsProps": true}]
  }
}
