UI / .eslintrc.json
.eslintrc.json
Raw
// {
//   "parser": "@typescript-eslint/parser",
//   "parserOptions": {
//     "project": "./tsconfig.json"
//   },
//   "plugins": ["@typescript-eslint"],
//   "extends": [
//     "airbnb-base",
//     "next/core-web-vitals",
//     "plugin:@typescript-eslint/recommended",
//     "plugin:tailwindcss/recommended",
//     "plugin:prettier/recommended",
//     "plugin:@tanstack/eslint-plugin-query/recommended"
//   ],
//   "rules": {
//     "@typescript-eslint/consistent-type-imports": "warn",
//     "@tanstack/query/exhaustive-deps": "error",
//     "@tanstack/query/prefer-query-object-syntax": "error"
//   },
//   "overrides": [
//     // Configuration for TypeScript files
//     {
//       "files": ["**/*.ts", "**/*.tsx"],
//       "plugins": ["@typescript-eslint", "unused-imports"],
//       "extends": [
//         "airbnb-typescript",
//         "next/core-web-vitals",
//         "plugin:prettier/recommended"
//       ],
//       "parserOptions": {
//         "project": "./tsconfig.json"
//       },
//       "rules": {
//         "prettier/prettier": ["error"],
//         "react/destructuring-assignment": "off", // Vscode doesn't support automatically destructuring, it's a pain to add a new variable
//         "jsx-a11y/anchor-is-valid": "off", // Next.js use his own internal link system
//         "react/require-default-props": "off", // Allow non-defined react props as undefined
//         "react/jsx-props-no-spreading": "off", // _app.tsx uses spread operator and also, react-hook-form
//         "@next/next/no-img-element": "off", // We currently not using next/image because it isn't supported with SSG mode
//         "@typescript-eslint/comma-dangle": "off", // Avoid conflict rule between Eslint and Prettier
//         "import/prefer-default-export": "off", // Named export is easier to refactor automatically
//         "class-methods-use-this": "off", // _document.tsx use render method without `this` keyword
//         "@typescript-eslint/no-unused-vars": "off",
//         "unused-imports/no-unused-imports": "error",
//         "unused-imports/no-unused-vars": [
//           "error",
//           { "argsIgnorePattern": "^_" }
//         ],
//         "react-hooks/rules-of-hooks": "error",
//         "react-hooks/exhaustive-deps": "warn",
//         "react/react-in-jsx-scope": "off",
//         "import/no-unresolved": "off",
//         "import/extensions": "off",
//         "import/order": "error",
//         "import/first": "error",
//         "import/newline-after-import": "error",
//         "import/no-duplicates": "error",
//         "tailwindcss/no-custom-classname": "off",
//         "tailwindcss/classnames-order": "off",
//         "@typescript-eslint/no-non-null-asserted-optional-chain": "off"
//       }
//     }
//   ]
// }