import jsxA11y from "eslint-plugin-jsx-a11y"; import react from "eslint-plugin-react"; import reactHooks from "eslint-plugin-react-hooks"; import baseConfig from "./base.js"; export default [ ...baseConfig, { files: ["**/*.tsx", "**/*.jsx"], ...react.configs.flat.recommended, ...react.configs.flat["jsx-runtime"], settings: { react: { version: "detect" }, }, rules: { ...react.configs.flat.recommended.rules, ...react.configs.flat["jsx-runtime"].rules, "react/react-in-jsx-scope": "off", "react/prop-types": "off", }, }, { files: ["**/*.tsx", "**/*.jsx"], plugins: { "react-hooks": reactHooks }, rules: { "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn", }, }, { files: ["**/*.tsx", "**/*.jsx"], ...jsxA11y.flatConfigs.recommended, rules: { ...jsxA11y.flatConfigs.recommended.rules, "jsx-a11y/label-has-associated-control": ["error", { assert: "either" }], }, }, ];