Skip to content

Commit 121c653

Browse files
committed
chore: enable @eslint-react/eslint-plugin
1 parent 5fc26c4 commit 121c653

File tree

8 files changed

+33
-16
lines changed

8 files changed

+33
-16
lines changed

eslint.config.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// @ts-check
22

33
import eslint from '@eslint/js'
4+
import react from '@eslint-react/eslint-plugin'
45
import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript'
56
import { importX } from 'eslint-plugin-import-x'
67
import * as reactHooks from 'eslint-plugin-react-hooks'
@@ -13,10 +14,15 @@ export default config(
1314
eslint.configs.recommended,
1415
importX.flatConfigs.recommended,
1516
importX.flatConfigs.typescript,
17+
react.configs.recommended,
1618
reactHooks.configs['recommended-latest'],
1719
{
1820
files: ['**/*.{ts,tsx}'],
19-
extends: [configs.eslintRecommended, configs.strictTypeChecked],
21+
extends: [
22+
configs.eslintRecommended,
23+
configs.strictTypeChecked,
24+
react.configs['recommended-type-checked'],
25+
],
2026
languageOptions: {
2127
parserOptions: {
2228
projectService: true,

src/global/VersionsNav/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ const VersionsNav_ = () => {
120120
})
121121
const newNavMenu = getNavMenu()
122122
if (newNavMenu !== navMenu) {
123+
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
123124
setNavMenu(newNavMenu)
124125
} else if (navMenu.parentNode) {
125126
observer.observe(navMenu.parentNode, { childList: true })

src/runtime/components/K8sCrd.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export const K8sCrdSchemaPart = ({
4141
}, [])
4242

4343
useEffect(() => {
44+
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
4445
setOpen(expandAll)
4546
}, [expandAll])
4647

src/runtime/components/OpenAPIPath.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,19 @@ export const OpenAPIParameters = ({
5353
typeNode = <RefLink $ref={type.$ref} />
5454
}
5555
return (
56+
// eslint-disable-next-line @eslint-react/no-array-index-key
5657
<X.li key={index}>
57-
<code>{paramObj.name}</code>(<em>in {paramObj.in}</em>): {typeNode}
58-
{paramObj.required && <Badge>required</Badge>}
59-
<Markdown>{paramObj.description}</Markdown>
58+
<code>{paramObj.name}</code> (<em>in {paramObj.in}</em>): {typeNode}
59+
{paramObj.required && (
60+
<>
61+
{' '}
62+
<Badge>required</Badge>
63+
</>
64+
)}
65+
<>
66+
{' '}
67+
<Markdown>{paramObj.description}</Markdown>
68+
</>
6069
</X.li>
6170
)
6271
})}

src/runtime/components/OpenAPIRef.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ export const OpenAPIProperties = ({
106106
const [X] = useState(getCustomMDXComponent)
107107
return (
108108
<X.ul>
109-
{Object.entries(properties).map(([name, property], index) => (
110-
<X.li key={index}>
109+
{Object.entries(properties).map(([name, property]) => (
110+
<X.li key={name}>
111111
<OpenAPIProperty name={name} property={property} openapi={openapi} />
112112
</X.li>
113113
))}

src/runtime/components/Tabs.tsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
import { Tabs as Tabs_ } from '@rspress/core/theme'
2-
import {
3-
Children,
4-
forwardRef,
5-
type ForwardRefExoticComponent,
6-
type RefAttributes,
7-
} from 'react'
2+
import { Children, type RefAttributes } from 'react'
83

94
import { useIsPrint } from '../hooks/index.js'
105

11-
export const Tabs: ForwardRefExoticComponent<
12-
Parameters<typeof Tabs_>[0] & RefAttributes<HTMLDivElement>
13-
> = forwardRef(({ children, ...props }, ref) => {
6+
export type TabsProps = Parameters<typeof Tabs_>[0] &
7+
RefAttributes<HTMLDivElement>
8+
9+
export const Tabs = ({ ref, children, ...props }: TabsProps) => {
1410
const isPrint = useIsPrint()
1511
return (
1612
<div className="doom-tabs" ref={ref}>
1713
{isPrint ? (
14+
// eslint-disable-next-line @eslint-react/no-children-map
1815
Children.map(children, (child, index) => (
16+
// eslint-disable-next-line @eslint-react/no-array-index-key
1917
<Tabs_ key={index} {...props}>
2018
{child}
2119
</Tabs_>
@@ -25,6 +23,6 @@ export const Tabs: ForwardRefExoticComponent<
2523
)}
2624
</div>
2725
)
28-
})
26+
}
2927

3028
export default Tabs

src/runtime/components/TermsTable.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export const TermsTable = ({ terms }: TermsTableProps) => {
2020
list?.length ? (
2121
<X.ul>
2222
{list.map((item, index) => (
23+
// eslint-disable-next-line @eslint-react/no-array-index-key
2324
<X.li key={index}>{item}</X.li>
2425
))}
2526
</X.ul>

src/runtime/components/_HeadingTitle.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export const HeadingTitle = ({
2525
const HeadingComponent = HeadingComponents[level]
2626
const slugFromChildren = useMemo(
2727
() =>
28+
// eslint-disable-next-line @eslint-react/no-children-to-array
2829
Children.toArray(children)
2930
.filter((it) => typeof it === 'string')
3031
.join(''),

0 commit comments

Comments
 (0)