Skip to content

Commit 9ece3a6

Browse files
committed
fix: follow react hooks rules ESLint
1 parent 130e8c1 commit 9ece3a6

File tree

7 files changed

+42
-23
lines changed

7 files changed

+42
-23
lines changed

src/components/OperationCard.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Button, Card, Elevation, H4, H5, Icon, Tag } from '@blueprintjs/core'
22
import { Tooltip2 } from '@blueprintjs/popover2'
33

44
import clsx from 'clsx'
5+
import { useAtomValue } from 'jotai'
56
import { CopilotInfoStatusEnum } from 'maa-copilot-client'
67
import { copyShortCode, handleLazyDownloadJSON } from 'services/operation'
78

@@ -11,9 +12,9 @@ import { OperationRating } from 'components/viewer/OperationRating'
1112
import { OpDifficulty, Operation } from 'models/operation'
1213

1314
import { useLevels } from '../apis/level'
14-
import { useTranslation } from '../i18n/i18n'
15+
import { languageAtom, useTranslation } from '../i18n/i18n'
1516
import { createCustomLevel, findLevelByStageName } from '../models/level'
16-
import { useLocalizedOperatorName } from '../models/operator'
17+
import { getLocalizedOperatorName } from '../models/operator'
1718
import { Paragraphs } from './Paragraphs'
1819
import { ReLinkDiv } from './ReLinkDiv'
1920
import { UserName } from './UserName'
@@ -246,13 +247,14 @@ export const OperationCard = ({ operation }: { operation: Operation }) => {
246247

247248
const OperatorTags = ({ operation }: { operation: Operation }) => {
248249
const t = useTranslation()
250+
const language = useAtomValue(languageAtom)
249251
const { opers, groups } = operation.parsedContent
250252

251253
return opers?.length || groups?.length ? (
252254
<div>
253255
{opers?.map(({ name, skill }, index) => (
254256
<Tag key={index} className="mr-2 last:mr-0 mb-1 last:mb-0">
255-
{`${useLocalizedOperatorName(name)} ${skill ?? 1}`}
257+
{`${getLocalizedOperatorName(name, language)} ${skill ?? 1}`}
256258
</Tag>
257259
))}
258260
{groups?.map(({ name, opers }, index) => (
@@ -264,7 +266,7 @@ const OperatorTags = ({ operation }: { operation: Operation }) => {
264266
opers
265267
?.map(
266268
({ name, skill }) =>
267-
`${useLocalizedOperatorName(name)} ${skill ?? 1}`,
269+
`${getLocalizedOperatorName(name, language)} ${skill ?? 1}`,
268270
)
269271
.join(', ') || t.components.OperationCard.no_operators
270272
}

src/components/OperatorFilter.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ import {
99
} from '@blueprintjs/core'
1010

1111
import clsx from 'clsx'
12-
import { getDefaultStore, useAtom } from 'jotai'
13-
import { useAtomValue } from 'jotai'
12+
import { getDefaultStore, useAtom, useAtomValue } from 'jotai'
1413
import { compact } from 'lodash-es'
1514
import { FC, useEffect, useMemo, useState } from 'react'
1615

src/components/editor/operator/EditorOperatorItem.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
import { Card, Elevation, Icon } from '@blueprintjs/core'
22

33
import clsx from 'clsx'
4+
import { useAtomValue } from 'jotai'
45

56
import type { CopilotDocV1 } from 'models/copilot.schema'
67

7-
import { useTranslation } from '../../../i18n/i18n'
8-
import { OPERATORS, getSkillUsageTitle, useLocalizedOperatorName } from '../../../models/operator'
8+
import { languageAtom, useTranslation } from '../../../i18n/i18n'
9+
import {
10+
OPERATORS,
11+
getLocalizedOperatorName,
12+
getSkillUsageTitle,
13+
} from '../../../models/operator'
914
import { SortableItemProps } from '../../dnd'
1015
import { CardDeleteOption, CardEditOption } from '../CardOptions'
1116
import { OperatorAvatar } from './EditorOperator'
@@ -27,7 +32,7 @@ export const EditorOperatorItem = ({
2732
listeners,
2833
}: EditorOperatorItemProps) => {
2934
const t = useTranslation()
30-
35+
const language = useAtomValue(languageAtom)
3136
const id = OPERATORS.find(({ name }) => name === operator.name)?.id
3237
const skillUsage = getSkillUsageTitle(
3338
operator.skillUsage as CopilotDocV1.SkillUsageType,
@@ -52,7 +57,9 @@ export const EditorOperatorItem = ({
5257
/>
5358
<OperatorAvatar id={id} size="large" />
5459
<div className="ml-4 flex-grow">
55-
<h3 className="font-bold leading-none mb-1">{useLocalizedOperatorName(operator.name)}</h3>
60+
<h3 className="font-bold leading-none mb-1">
61+
{getLocalizedOperatorName(operator.name, language)}
62+
</h3>
5663
<div className="text-gray-400 text-xs">
5764
{t.components.editor.operator.EditorOperatorItem.skill_number({
5865
count: operator.skill,

src/components/editor/operator/sheet/SheetGroup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useAtomValue } from 'jotai'
44
import { FC, useMemo, useState } from 'react'
55

66
import { AppToaster } from 'components/Toaster'
7-
import { OPERATORS, PROFESSIONS, useLocalizedOperatorName } from 'models/operator'
7+
import { OPERATORS, PROFESSIONS } from 'models/operator'
88
import { favGroupAtom } from 'store/useFavGroups'
99

1010
import { useTranslation } from '../../../../i18n/i18n'

src/components/editor/operator/sheet/sheetGroup/OperatorInGroupItem.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import { Card } from '@blueprintjs/core'
22

33
import { FC } from 'react'
44

5+
import { useLocalizedOperatorName } from 'models/operator'
6+
57
import { OperatorAvatar } from '../../EditorOperator'
68
import { Operator } from '../../EditorSheet'
79
import { SkillAboutTrigger } from '../SheetOperatorSkillAbout'
8-
import { useLocalizedOperatorName } from 'models/operator'
910

1011
export interface OperatorInGroupItemProp {
1112
operatorInfo: Operator

src/components/editor/operator/sheet/sheetGroup/SheetOperatorEditor.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
import { Popover2 } from '@blueprintjs/popover2'
1212

1313
import clsx from 'clsx'
14+
import { useAtomValue } from 'jotai'
1415
import {
1516
DetailedHTMLProps,
1617
Dispatch,
@@ -21,7 +22,9 @@ import {
2122
useState,
2223
} from 'react'
2324

24-
import { useTranslation } from '../../../../../i18n/i18n'
25+
import { getLocalizedOperatorName } from 'models/operator'
26+
27+
import { languageAtom, useTranslation } from '../../../../../i18n/i18n'
2528
import { OperatorAvatar } from '../../EditorOperator'
2629
import { Group } from '../../EditorSheet'
2730
import {
@@ -31,7 +34,6 @@ import {
3134
import { OperatorNoData } from '../SheetNoneData'
3235
import { useSheet } from '../SheetProvider'
3336
import { CollapseButton } from './CollapseButton'
34-
import { useLocalizedOperatorName } from 'models/operator'
3537

3638
export interface SheetOperatorEditorProp extends SheetOperatorEditorFormProp {}
3739

@@ -307,6 +309,8 @@ const OperatorSelectorItem: FC<{
307309
groupName?: OperatorInSheetOperatorEditor['groupName']
308310
opers: Group['opers']
309311
}> = ({ selectedOperators, setSelectedOperators, groupName, opers }) => {
312+
const language = useAtomValue(languageAtom)
313+
310314
return (
311315
<div className="flex flex-wrap">
312316
{opers?.map(({ name }) => {
@@ -334,7 +338,7 @@ const OperatorSelectorItem: FC<{
334338
>
335339
<OperatorAvatar name={name} size="large" />
336340
<p className="mt-1 font-bold leading-tight text-center break-words">
337-
{useLocalizedOperatorName(name)}
341+
{getLocalizedOperatorName(name, language)}
338342
</p>
339343
</Card>
340344
)

src/components/editor/operator/sheet/sheetOperator/SheetOperatorItem.tsx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import { FC } from 'react'
88

99
import { AppToaster } from 'components/Toaster'
1010
import { CopilotDocV1 } from 'models/copilot.schema'
11+
import { useLocalizedOperatorName } from 'models/operator'
1112
import { ignoreKeyDic } from 'store/useFavGroups'
1213
import { favOperatorAtom } from 'store/useFavOperators'
1314

1415
import { useTranslation } from '../../../../../i18n/i18n'
1516
import { OperatorAvatar } from '../../EditorOperator'
1617
import { SkillAboutTrigger } from '../SheetOperatorSkillAbout'
1718
import { useSheet } from '../SheetProvider'
18-
import { useLocalizedOperatorName } from 'models/operator'
1919

2020
export interface SheetOperatorItemProp {
2121
name: string
@@ -173,13 +173,19 @@ export const SheetOperatorItem: FC<SheetOperatorItemProp> = ({ name }) => {
173173
/>
174174
)}
175175
{grouped && (
176-
<span className="text-xs font-bold mt-1">
177-
<Icon icon="warning-sign" size={15} />
178-
{
179-
t.components.editor.operator.sheet.sheetOperator.SheetOperatorItem
180-
.in_group
181-
}
182-
</span>
176+
<div className={clsx('flex mt-1 text-gray-500 items-center text-xs')}>
177+
<Icon
178+
icon="warning-sign"
179+
size={12}
180+
className="flex items-center mr-1"
181+
/>
182+
<p className="font-semibold">
183+
{
184+
t.components.editor.operator.sheet.sheetOperator.SheetOperatorItem
185+
.in_group
186+
}
187+
</p>
188+
</div>
183189
)}
184190
</Card>
185191
)

0 commit comments

Comments
 (0)