From 187ab3089778bf60c140feaccfa5af7225a024d5 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Tue, 12 Nov 2024 19:14:57 +0800 Subject: [PATCH] fix: improved popup item filtering logic --- .../components/Popups/SelectModelPopup.tsx | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/renderer/src/components/Popups/SelectModelPopup.tsx b/src/renderer/src/components/Popups/SelectModelPopup.tsx index 284c70754d..cd1f81daf1 100644 --- a/src/renderer/src/components/Popups/SelectModelPopup.tsx +++ b/src/renderer/src/components/Popups/SelectModelPopup.tsx @@ -63,11 +63,8 @@ const PopupContainer: React.FC = ({ model, resolve }) => { const filteredItems: MenuItem[] = providers .filter((p) => p.models && p.models.length > 0) - .map((p) => ({ - key: p.id, - label: p.isSystem ? t(`provider.${p.id}`) : p.name, - type: 'group', - children: reverse(sortBy(p.models, 'name')) + .map((p) => { + const filteredModels = reverse(sortBy(p.models, 'name')) .filter((m) => [m.name + m.provider + t('provider.' + p.id)].join('').toLowerCase().includes(searchText.toLowerCase()) ) @@ -98,7 +95,18 @@ const PopupContainer: React.FC = ({ model, resolve }) => { 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) { const pinnedItems = providers