@@ -7,21 +7,17 @@ import {
77} from '@blueprintjs/core'
88
99import { UseOperationsParams } from 'apis/operation'
10- import { useAtom , useAtomValue } from 'jotai'
10+ import { useAtom } from 'jotai'
1111import { debounce } from 'lodash-es'
1212import { ComponentType , useMemo , useState } from 'react'
1313
1414import { CardTitle } from 'components/CardTitle'
1515import { OperationList } from 'components/OperationList'
1616import { OperationSetList } from 'components/OperationSetList'
1717import { neoLayoutAtom } from 'store/pref'
18- import {
19- selectedOperatorQueryAtom ,
20- selectedOperatorsAtom ,
21- } from 'store/selectedOperators'
2218
2319import { authAtom } from '../store/auth'
24- import { OperatorSelect } from './OperatorSelect '
20+ import { OperatorFilter } from './OperatorFilter '
2521import { withSuspensable } from './Suspensable'
2622
2723export const Operations : ComponentType = withSuspensable ( ( ) => {
@@ -31,14 +27,13 @@ export const Operations: ComponentType = withSuspensable(() => {
3127 limit : 10 ,
3228 orderBy : 'hot' ,
3329 } )
34- const [ selectedOperators , setSelectedOperators ] = useAtom (
35- selectedOperatorsAtom ,
36- )
37- const selectedOperatorQuery = useAtomValue ( selectedOperatorQueryAtom )
3830 const debouncedSetQueryParams = useMemo (
3931 ( ) => debounce ( setQueryParams , 500 ) ,
4032 [ ] ,
4133 )
34+
35+ const [ selectedOperators , setSelectedOperators ] = useState < string [ ] > ( [ ] )
36+
4237 const [ authState ] = useAtom ( authAtom )
4338 const [ neoLayout , setNeoLayout ] = useAtom ( neoLayoutAtom )
4439 const [ listMode , setListMode ] = useState < 'operation' | 'operationSet' > (
@@ -104,14 +99,7 @@ export const Operations: ComponentType = withSuspensable(() => {
10499 { listMode === 'operation' && (
105100 < div className = "flex flex-wrap items-end" >
106101 < div className = "flex mr-4" >
107- < FormGroup
108- helperText = {
109- selectedOperators . length
110- ? '点击干员标签以标记为排除该干员'
111- : undefined
112- }
113- className = "max-w-md"
114- >
102+ < div className = "max-w-md" >
115103 < InputGroup
116104 className = "[&>input]:!rounded-md"
117105 placeholder = "标题、描述、神秘代码"
@@ -145,12 +133,12 @@ export const Operations: ComponentType = withSuspensable(() => {
145133 }
146134 onBlur = { ( ) => debouncedSetQueryParams . flush ( ) }
147135 />
148- < OperatorSelect
136+ < OperatorFilter
149137 className = "mt-2"
150- operators = { selectedOperatorQuery . split ( ',' ) }
138+ operators = { selectedOperators }
151139 onChange = { setSelectedOperators }
152140 />
153- </ FormGroup >
141+ </ div >
154142 </ div >
155143 < div className = "flex flex-col" >
156144 { filterNode }
@@ -221,7 +209,7 @@ export const Operations: ComponentType = withSuspensable(() => {
221209 { listMode === 'operation' && (
222210 < OperationList
223211 { ...queryParams }
224- operator = { selectedOperatorQuery }
212+ operator = { selectedOperators . join ( ',' ) }
225213 // 按热度排序时列表前几页的变化不会太频繁,可以不刷新第一页,节省点流量
226214 revalidateFirstPage = { queryParams . orderBy !== 'hot' }
227215 />
0 commit comments