Skip to content

Commit be1d9c2

Browse files
authored
refactor: add useEffect to additionalHooks (#938)
1 parent 28094b1 commit be1d9c2

File tree

4 files changed

+7
-2
lines changed

4 files changed

+7
-2
lines changed

apps/website/content/docs/advanced-configuration.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default [
1919
version: "19.0.0",
2020
importSource: "react",
2121
additionalHooks: {
22+
useEffect: ["useIsomorphicLayoutEffect"],
2223
useLayoutEffect: ["useIsomorphicLayoutEffect"],
2324
},
2425
additionalComponents: [

apps/website/content/docs/configurations.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ For example, if you set the `additionalHooks` to:
108108

109109
```json
110110
{
111+
useEffect: ["useIsomorphicLayoutEffect"]
111112
useLayoutEffect: ["useIsomorphicLayoutEffect"]
112113
}
113114
```
@@ -124,7 +125,7 @@ will be evaluated as an:
124125
useLayoutEffect(() => { setCount(count => count + 1); }, []);
125126
```
126127

127-
So that the `hooks-extra/no-direct-set-state-in-use-layout-effect` rule can perform checks on it.
128+
So that both the `hooks-extra/no-direct-set-state-in-use-effect` and `hooks-extra/no-direct-set-state-in-use-layout-effect` rules can perform checks on it.
128129

129130
## Examples
130131

@@ -142,6 +143,7 @@ export default [
142143
importSource: "react",
143144
polymorphicPropName: "as",
144145
additionalHooks: {
146+
useEffect: ["useIsomorphicLayoutEffect"],
145147
useLayoutEffect: ["useIsomorphicLayoutEffect"],
146148
},
147149
additionalComponents: [

packages/plugins/eslint-plugin-react-hooks-extra/src/rules/no-direct-set-state-in-use-layout-effect.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ ruleTester.run(RULE_NAME, rule, {
3737
settings: {
3838
"react-x": {
3939
additionalHooks: {
40+
useEffect: ["useIsomorphicLayoutEffect"],
4041
useLayoutEffect: ["useIsomorphicLayoutEffect"],
4142
},
4243
},

packages/shared/src/schemas.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export const ESLintReactSettingsSchema = object({
133133
/**
134134
* A object to define additional hooks that are equivalent to the built-in React Hooks.
135135
* @description ESLint React will recognize these aliases as equivalent to the built-in hooks in all its rules.
136-
* @example `{ useLayoutEffect: ["useIsomorphicLayoutEffect"] }`
136+
* @example `{ useEffect: ["useIsomorphicLayoutEffect"] }`
137137
*/
138138
additionalHooks: optional(CustomHooksSchema),
139139
/**
@@ -179,6 +179,7 @@ export const DEFAULT_ESLINT_REACT_SETTINGS = {
179179
strictImportCheck: false,
180180
version: "detect",
181181
additionalHooks: {
182+
useEffect: ["useIsomorphicLayoutEffect"],
182183
useLayoutEffect: ["useIsomorphicLayoutEffect"],
183184
},
184185
} as const satisfies ESLintReactSettings;

0 commit comments

Comments
 (0)