@@ -201,20 +201,30 @@ export const useTagsSelector = ({
201
201
return [ ] ;
202
202
}
203
203
204
- // 强制按频率排序,忽略 alwaysUseSortByFrequency 的值
205
- // 如果有传入标签频率数据,直接使用
206
- if ( tagsFrequency && tagsFrequency . length > 0 ) {
207
- console . log ( '使用标签频率排序:' , tagsFrequency . slice ( 0 , 5 ) . map ( t => `${ t . tag } (${ t . count } )` ) ) ;
208
- const result = tagsFrequency . map ( ( { tag } ) => ( { value : tag } ) ) ;
209
- return result ;
204
+ console . log ( '是否总是按频率排序:' , alwaysUseSortByFrequency ) ;
205
+
206
+ // 总是按频率排序或第一次聚焦时按频率排序
207
+ if ( alwaysUseSortByFrequency ) {
208
+ // 如果有传入标签频率数据,直接使用
209
+ if ( tagsFrequency && tagsFrequency . length > 0 ) {
210
+ console . log ( '使用标签频率排序:' , tagsFrequency . slice ( 0 , 5 ) . map ( t => `${ t . tag } (${ t . count } )` ) ) ;
211
+ const result = tagsFrequency . map ( ( { tag } ) => ( { value : tag } ) ) ;
212
+ return result ;
213
+ } else {
214
+ // 没有频率数据,按字母顺序排序
215
+ console . log ( '没有频率数据,使用字母排序' ) ;
216
+ return [ ...existingTags ]
217
+ . sort ( ( a , b ) => a . localeCompare ( b ) )
218
+ . map ( tag => ( { value : tag } ) ) ;
219
+ }
210
220
} else {
211
- // 没有频率数据, 按字母顺序排序
212
- console . log ( '没有频率数据 ,使用字母排序' ) ;
221
+ // 按字母顺序排序
222
+ console . log ( '已聚焦过且非强制频率排序模式 ,使用字母排序' ) ;
213
223
return [ ...existingTags ]
214
224
. sort ( ( a , b ) => a . localeCompare ( b ) )
215
225
. map ( tag => ( { value : tag } ) ) ;
216
226
}
217
- } , [ existingTags , tagsFrequency ] ) ;
227
+ } , [ existingTags , alwaysUseSortByFrequency , tagsFrequency ] ) ;
218
228
219
229
// 存储排序后的标签,避免重复计算
220
230
const sortedTagsOptions = useMemo ( ( ) => {
0 commit comments