import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import tseslint from "typescript-eslint";

export default tseslint.config(
	{ ignores: ["dist"] },
	{
		extends: [js.configs.recommended, ...tseslint.configs.recommended],
		files: ["**/*.{ts,tsx}"],
		languageOptions: {
			ecmaVersion: 2020,
			globals: globals.browser,
		},
		plugins: {
			"react-hooks": reactHooks,
			"react-refresh": reactRefresh,
		},
		rules: {
			...reactHooks.configs.recommended.rules,
			"react-refresh/only-export-components": [
				"warn",
				{ allowConstantExport: true },
			],
			// 允许使用 any 类型
			"@typescript-eslint/no-explicit-any": "off",

			// 允许声明但未使用的变量
			"@typescript-eslint/no-unused-vars": [
				"warn",
				{
					vars: "all", // 检查所有变量
					args: "none", // 不检查函数参数
					ignoreRestSiblings: true,
				},
			],

			// 禁止使用未声明的变量
			"no-undef": "error",
		},
	}
);
