Skip to content

Commit b5adf84

Browse files
author
gemini2035
committed
perf(sheet): fav operator logic optimized
1 parent be5a65c commit b5adf84

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

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

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
77
import { UseFieldArrayRemove } from 'react-hook-form'
88

99
import { AppToaster } from 'components/Toaster'
10+
import { CopilotDocV1 } from 'models/copilot.schema'
1011
import { OPERATORS, PROFESSIONS } from 'models/operator'
1112
import { ignoreKeyDic } from 'store/useFavGroups'
1213
import { favOperatorAtom } from 'store/useFavOperators'
@@ -125,11 +126,23 @@ const SheetOperator = ({
125126
),
126127
)
127128

128-
const updateFavOperator = (value: Operator) =>
129+
const updateFavOperator = (value: Operator) => {
130+
const { skill, skillUsage, skillTimes, ...rest } = value
131+
const formattedValue = {
132+
...rest,
133+
skill: skill || 1,
134+
skillUsage: skillUsage || 0,
135+
skillTimes:
136+
skillUsage === CopilotDocV1.SkillUsageType.ReadyToUseTimes
137+
? skillTimes || 1
138+
: undefined,
139+
}
129140
setFavOperators([
130-
...[...favOperators].filter(({ name }) => name !== value.name),
131-
{ ...value },
141+
...[...favOperators].filter(({ name }) => name !== formattedValue.name),
142+
{ ...formattedValue },
132143
])
144+
submitOperator(formattedValue, undefined, true)
145+
}
133146

134147
const operatorPinHandle: OperatorModifyProps['operatorPinHandle'] = (
135148
value,

0 commit comments

Comments
 (0)