diff --git a/.github/workflows/surge-preview.yml b/.github/workflows/surge-preview.yml index 394f2b02..c4c39b67 100644 --- a/.github/workflows/surge-preview.yml +++ b/.github/workflows/surge-preview.yml @@ -31,7 +31,7 @@ jobs: - name: Build preview if: ${{ steps.surge-token.outputs.enabled == 'true' }} run: | - npm install + npm install --legacy-peer-deps npm run build - uses: afc163/surge-preview@bf90a5a86111f6311ca42f0a5a0f80fb0fb03cec if: ${{ steps.surge-token.outputs.enabled == 'true' }} diff --git a/eslint.config.mjs b/eslint.config.mjs index 40f08ec9..a298e8e0 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,4 +1,5 @@ import js from '@eslint/js'; +import { fixupConfigRules } from '@eslint/compat'; import { defineConfig } from 'eslint/config'; import { dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -40,8 +41,8 @@ export default defineConfig([ files: ['**/*.{js,jsx,ts,tsx}'], extends: [ js.configs.recommended, - react.configs.flat.recommended, - react.configs.flat['jsx-runtime'], + ...fixupConfigRules(react.configs.flat.recommended), + ...fixupConfigRules(react.configs.flat['jsx-runtime']), prettier, ], plugins: { diff --git a/package.json b/package.json index 8af5f9cb..2c2addd8 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "clsx": "^2.1.1" }, "devDependencies": { - "@eslint/js": "^9.39.4", + "@eslint/js": "^10.0.1", + "@eslint/compat": "^2.1.0", "@rc-component/dialog": "^1.2.0", "@rc-component/father-plugin": "^2.2.0", "@rc-component/form": "^1.4.0", @@ -66,7 +67,7 @@ "@types/warning": "^3.0.4", "cross-env": "^10.1.0", "dumi": "^2.4.38", - "eslint": "^9.39.4", + "eslint": "^10.6.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jest": "^29.15.4", "eslint-plugin-react": "^7.37.5", diff --git a/src/OptionList.tsx b/src/OptionList.tsx index ea5fc8bf..75ae9bf3 100644 --- a/src/OptionList.tsx +++ b/src/OptionList.tsx @@ -255,19 +255,13 @@ const OptionList: React.ForwardRefRenderFunction = (_, if (!open) { return; } - let nextActiveKey = null; - const getFirstNode = () => { const firstNode = getFirstMatchingNode(memoTreeData); return firstNode ? firstNode[fieldNames.value] : null; }; // single mode active first checked node - if (!multiple && checkedKeys.length && !searchValue) { - nextActiveKey = checkedKeys[0]; - } else { - nextActiveKey = getFirstNode(); - } + const nextActiveKey = !multiple && checkedKeys.length && !searchValue ? checkedKeys[0] : getFirstNode(); setActiveKey(nextActiveKey); // eslint-disable-next-line react-hooks/exhaustive-deps