diff --git a/.oxlintrc.json b/.oxlintrc.json
index 1f94a614e6..9388ec771d 100644
--- a/.oxlintrc.json
+++ b/.oxlintrc.json
@@ -1,6 +1,14 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
- "plugins": ["eslint", "typescript", "unicorn", "oxc", "import"],
+ "plugins": [
+ "eslint",
+ "typescript",
+ "unicorn",
+ "oxc",
+ "import",
+ "react",
+ "react-perf"
+ ],
"jsPlugins": [
{
"name": "mocha",
diff --git a/packages/app-web-docs/src/docs/components/DynamicTOC.tsx b/packages/app-web-docs/src/docs/components/DynamicTOC.tsx
index af7c50d162..9140b267fe 100644
--- a/packages/app-web-docs/src/docs/components/DynamicTOC.tsx
+++ b/packages/app-web-docs/src/docs/components/DynamicTOC.tsx
@@ -25,7 +25,7 @@ export function DynamicTOC({
} else {
row.appendChild(toc);
}
- }, []);
+ }, [minHeadingLevel, maxHeadingLevel]);
return null;
}
diff --git a/packages/app-web-docs/src/docs/components/ScrollToHashId.tsx b/packages/app-web-docs/src/docs/components/ScrollToHashId.tsx
index 6f1219e55e..8ef34f5579 100644
--- a/packages/app-web-docs/src/docs/components/ScrollToHashId.tsx
+++ b/packages/app-web-docs/src/docs/components/ScrollToHashId.tsx
@@ -33,6 +33,7 @@ export function ScrollToHashId() {
setTimeout(scrollToId, delay);
}
+ // oxlint-disable-next-line eslint-plugin-react-hooks/exhaustive-deps
}, []);
return null;
diff --git a/packages/lib-cheatsheet/src/lib/utils/useIsHighlighted.ts b/packages/lib-cheatsheet/src/lib/utils/useIsHighlighted.ts
index a849ecba3f..feb8aebea1 100644
--- a/packages/lib-cheatsheet/src/lib/utils/useIsHighlighted.ts
+++ b/packages/lib-cheatsheet/src/lib/utils/useIsHighlighted.ts
@@ -29,7 +29,7 @@ const useHash = () => {
return () => {
window.removeEventListener("hashchange", onHashChange);
};
- }, []);
+ }, [onHashChange]);
return hash;
};
diff --git a/packages/lib-vscode-tutorial-webview/src/App.tsx b/packages/lib-vscode-tutorial-webview/src/App.tsx
index 5fb2e025da..4d8ffc03f1 100644
--- a/packages/lib-vscode-tutorial-webview/src/App.tsx
+++ b/packages/lib-vscode-tutorial-webview/src/App.tsx
@@ -21,7 +21,7 @@ export function App({ vscode }: Props) {
);
vscode.postMessage({ type: "getInitialState" });
- }, []);
+ }, [vscode]);
if (state == null) {
// Just show nothing while we're waiting for initial state
diff --git a/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx b/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
index 01d7c0bc0e..1394d6a952 100644
--- a/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
+++ b/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
@@ -55,9 +55,9 @@ export function TutorialStep({ state, vscode }: Props) {
case "string":
return {fragment.value};
case "command":
- return ;
+ return ;
case "term":
- return "{fragment.value}";
+ return "{fragment.value}";
default: {
// Ensure we handle all cases
const _unused: never = fragment;