From 7732b904f801af89767c458c551123a5cf2fdec1 Mon Sep 17 00:00:00 2001 From: Rel1cx Date: Tue, 25 Mar 2025 02:09:33 +0800 Subject: [PATCH] feat: add 'hooks-extra/prefer-use-state-lazy-initialization' rule to recommended presets --- apps/website/content/docs/rules/overview.mdx | 2 +- packages/plugins/eslint-plugin-react-hooks-extra/README.md | 1 + .../src/rules/prefer-use-state-lazy-initialization.md | 6 ++++-- packages/plugins/eslint-plugin/src/configs/recommended.ts | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/website/content/docs/rules/overview.mdx b/apps/website/content/docs/rules/overview.mdx index b533a9ba48..41fb6305c9 100644 --- a/apps/website/content/docs/rules/overview.mdx +++ b/apps/website/content/docs/rules/overview.mdx @@ -117,7 +117,7 @@ Linter rules can have false positives, false negatives, and some rules are depen | [`no-unnecessary-use-callback`](./hooks-extra-no-unnecessary-use-callback) | 0️⃣ | `🧪` | Disallow unnecessary usage of `useCallback` | | [`no-unnecessary-use-memo`](./hooks-extra-no-unnecessary-use-memo) | 0️⃣ | `🧪` | Disallow unnecessary usage of `useMemo` | | [`no-unnecessary-use-prefix`](./hooks-extra-no-unnecessary-use-prefix) | 1️⃣ | | Enforces that a function with the `use` prefix should use at least one Hook inside of it | -| [`prefer-use-state-lazy-initialization`](./hooks-extra-prefer-use-state-lazy-initialization) | 0️⃣ | `🧪` | Enforces function calls made inside `useState` to be wrapped in an `initializer function` | +| [`prefer-use-state-lazy-initialization`](./hooks-extra-prefer-use-state-lazy-initialization) | 1️⃣ | | Enforces function calls made inside `useState` to be wrapped in an `initializer function` | ## Naming Convention Rules diff --git a/packages/plugins/eslint-plugin-react-hooks-extra/README.md b/packages/plugins/eslint-plugin-react-hooks-extra/README.md index 42fdbc7478..94e9191a90 100644 --- a/packages/plugins/eslint-plugin-react-hooks-extra/README.md +++ b/packages/plugins/eslint-plugin-react-hooks-extra/README.md @@ -35,6 +35,7 @@ export default tseslint.config({ rules: { // Put rules you want to override here "react-hooks-extra/no-unnecessary-use-prefix": "warn", + "react-hooks-extra/prefer-use-state-lazy-initialization": "warn", }, }); ``` diff --git a/packages/plugins/eslint-plugin-react-hooks-extra/src/rules/prefer-use-state-lazy-initialization.md b/packages/plugins/eslint-plugin-react-hooks-extra/src/rules/prefer-use-state-lazy-initialization.md index 895a5625ac..f0ece3a9e3 100644 --- a/packages/plugins/eslint-plugin-react-hooks-extra/src/rules/prefer-use-state-lazy-initialization.md +++ b/packages/plugins/eslint-plugin-react-hooks-extra/src/rules/prefer-use-state-lazy-initialization.md @@ -14,9 +14,11 @@ react-hooks-extra/prefer-use-state-lazy-initialization @eslint-react/hooks-extra/prefer-use-state-lazy-initialization ``` -**Features** +**Presets** -`🧪` +- `recommended` +- `recommended-typescript` +- `recommended-type-checked` ## Description diff --git a/packages/plugins/eslint-plugin/src/configs/recommended.ts b/packages/plugins/eslint-plugin/src/configs/recommended.ts index 0df4ab4605..8a83a218e0 100644 --- a/packages/plugins/eslint-plugin/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin/src/configs/recommended.ts @@ -15,6 +15,7 @@ export const rules = { ...webApi.rules, "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn", "@eslint-react/hooks-extra/no-unnecessary-use-prefix": "warn", + "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn", } as const satisfies RulePreset; export const plugins = {