Skip to content

Commit badbf9e

Browse files
authored
Add eslint-plugin-react-hooks (#412)
1 parent acc752b commit badbf9e

File tree

6 files changed

+23
-3
lines changed

6 files changed

+23
-3
lines changed

app/components/chat/Artifact.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ export const Artifact = memo(function Artifact({ partId }: ArtifactProps) {
6060
setAllActionFinished(finished);
6161
}
6262
}
63+
// We only want to run this when `actions` changes
64+
// eslint-disable-next-line react-hooks/exhaustive-deps
6365
}, [actions]);
6466

6567
return (

app/components/editor/codemirror/CodeMirrorEditor.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,7 @@ export const CodeMirrorEditor = memo(
275275
// We don’t want this to run when `doc` changes without a change in isBinary/filePath/value
276276
// (i.e. a change when only `scroll` changes). While `setEditorDocument` uses the scroll
277277
// position, it only needs it when `isFileChange` is set to true.
278-
// TODO(nicolas): enable this when react-hooks is enabled
279-
// // eslint-disable-next-line react-hooks/exhaustive-deps
278+
// eslint-disable-next-line react-hooks/exhaustive-deps
280279
}, [
281280
doc?.isBinary,
282281
doc?.value,

app/components/settings/UsageCard.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ export function UsageCard() {
1515
const convex = useConvex();
1616

1717
const teams = useStore(convexTeamsStore);
18+
const [selectedTeamSlug, setSelectedTeamSlug] = useState(useSelectedTeamSlug() ?? teams?.[0]?.slug ?? null);
1819
useEffect(() => {
1920
if (teams && !selectedTeamSlug) {
2021
setSelectedTeamSlug(teams[0]?.slug);
2122
}
23+
// No need to run if only `selectedTeamSlug` changes
24+
// eslint-disable-next-line react-hooks/exhaustive-deps
2225
}, [teams]);
23-
const [selectedTeamSlug, setSelectedTeamSlug] = useState(useSelectedTeamSlug() ?? teams?.[0]?.slug ?? null);
2426

2527
const [isLoadingUsage, setIsLoadingUsage] = useState(true);
2628
const [tokenUsage, setTokenUsage] = useState<{

eslint.config.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { jsFileExtensions } from '@blitz/eslint-plugin/dist/configs/javascript.j
33
import { getNamingConventionRule, tsFileExtensions } from '@blitz/eslint-plugin/dist/configs/typescript.js';
44
import tailwindcss from "eslint-plugin-tailwindcss";
55
import reactPlugin from 'eslint-plugin-react';
6+
import reactHooksPlugin from 'eslint-plugin-react-hooks';
67

78
export default [
89
{
@@ -13,10 +14,12 @@ export default [
1314
files: [...tsFileExtensions, ...jsFileExtensions],
1415
plugins: {
1516
react: reactPlugin,
17+
"react-hooks": reactHooksPlugin,
1618
},
1719
rules: {
1820
...reactPlugin.configs.flat.recommended.rules,
1921
...reactPlugin.configs.flat['jsx-runtime'].rules,
22+
...reactHooksPlugin.configs.recommended.rules,
2023

2124
'@blitz/lines-around-comment': 'off',
2225
'@blitz/newline-before-return': 'off',

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@
153153
"convex-test": "^0.0.36",
154154
"eslint": "9.20.1",
155155
"eslint-plugin-react": "^7.37.5",
156+
"eslint-plugin-react-hooks": "^5.2.0",
156157
"eslint-plugin-tailwindcss": "^3.18.0",
157158
"events": "^3.3.0",
158159
"fast-glob": "^3.3.2",

pnpm-lock.yaml

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)