mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-11 08:19:01 +08:00
fix: improved popup item filtering logic
This commit is contained in:
parent
7d3cae1f5b
commit
0f3dc87d08
@ -63,11 +63,8 @@ const PopupContainer: React.FC<PopupContainerProps> = ({ model, resolve }) => {
|
|||||||
|
|
||||||
const filteredItems: MenuItem[] = providers
|
const filteredItems: MenuItem[] = providers
|
||||||
.filter((p) => p.models && p.models.length > 0)
|
.filter((p) => p.models && p.models.length > 0)
|
||||||
.map((p) => ({
|
.map((p) => {
|
||||||
key: p.id,
|
const filteredModels = reverse(sortBy(p.models, 'name'))
|
||||||
label: p.isSystem ? t(`provider.${p.id}`) : p.name,
|
|
||||||
type: 'group',
|
|
||||||
children: reverse(sortBy(p.models, 'name'))
|
|
||||||
.filter((m) =>
|
.filter((m) =>
|
||||||
[m.name + m.provider + t('provider.' + p.id)].join('').toLowerCase().includes(searchText.toLowerCase())
|
[m.name + m.provider + t('provider.' + p.id)].join('').toLowerCase().includes(searchText.toLowerCase())
|
||||||
)
|
)
|
||||||
@ -98,7 +95,18 @@ const PopupContainer: React.FC<PopupContainerProps> = ({ model, resolve }) => {
|
|||||||
setOpen(false)
|
setOpen(false)
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
}))
|
|
||||||
|
// Only return the group if it has filtered models
|
||||||
|
return filteredModels.length > 0
|
||||||
|
? {
|
||||||
|
key: p.id,
|
||||||
|
label: p.isSystem ? t(`provider.${p.id}`) : p.name,
|
||||||
|
type: 'group',
|
||||||
|
children: filteredModels
|
||||||
|
}
|
||||||
|
: null
|
||||||
|
})
|
||||||
|
.filter(Boolean) as MenuItem[] // Filter out null items
|
||||||
|
|
||||||
if (pinnedModels.length > 0 && searchText.length === 0) {
|
if (pinnedModels.length > 0 && searchText.length === 0) {
|
||||||
const pinnedItems = providers
|
const pinnedItems = providers
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user