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", }, }, ];