From 363d6f01fdc2bb41c247a9f31464b24d083640d7 Mon Sep 17 00:00:00 2001 From: Eric Lay Date: Wed, 11 Mar 2026 08:30:43 -0500 Subject: [PATCH] Add eslint.config.js --- eslint.config.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 eslint.config.js diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..14a70c5 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,60 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import pluginReact from "eslint-plugin-react"; +import pluginReactHooks from "eslint-plugin-react-hooks"; +import pluginUnusedImports from "eslint-plugin-unused-imports"; + +export default [ + { + files: [ + "src/components/**/*.{js,mjs,cjs,jsx}", + "src/pages/**/*.{js,mjs,cjs,jsx}", + "src/Layout.jsx", + ], + ignores: ["src/lib/**/*", "src/components/ui/**/*"], + ...pluginJs.configs.recommended, + ...pluginReact.configs.flat.recommended, + languageOptions: { + globals: globals.browser, + parserOptions: { + ecmaVersion: 2022, + sourceType: "module", + ecmaFeatures: { + jsx: true, + }, + }, + }, + settings: { + react: { + version: "detect", + }, + }, + plugins: { + react: pluginReact, + "react-hooks": pluginReactHooks, + "unused-imports": pluginUnusedImports, + }, + rules: { + "no-unused-vars": "off", + "react/jsx-uses-vars": "error", + "react/jsx-uses-react": "error", + "unused-imports/no-unused-imports": "error", + "unused-imports/no-unused-vars": [ + "warn", + { + vars: "all", + varsIgnorePattern: "^_", + args: "after-used", + argsIgnorePattern: "^_", + }, + ], + "react/prop-types": "off", + "react/react-in-jsx-scope": "off", + "react/no-unknown-property": [ + "error", + { ignore: ["cmdk-input-wrapper", "toast-close"] }, + ], + "react-hooks/rules-of-hooks": "error", + }, + }, +];