From 127ec4408b458b3cf5f3197ce6d8a891937608bc Mon Sep 17 00:00:00 2001 From: euvre <93761161+euvre@users.noreply.github.com> Date: Tue, 11 Aug 2026 23:49:26 -0700 Subject: [PATCH] Fix(mcp): reset bulk selection after delete and mode switch (#18073) --- web/src/pages/user-setting/mcp/index.tsx | 4 +++- .../user-setting/mcp/use-bulk-operate-mcp.tsx | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/web/src/pages/user-setting/mcp/index.tsx b/web/src/pages/user-setting/mcp/index.tsx index 74e2d4bbb1..969665ad70 100644 --- a/web/src/pages/user-setting/mcp/index.tsx +++ b/web/src/pages/user-setting/mcp/index.tsx @@ -55,6 +55,7 @@ export default function McpServer() { handleDelete, handleExportMcp, handleSelectAll, + resetSelection, } = useBulkOperateMCP(data.mcp_servers); const { t } = useTranslation(); const { @@ -76,7 +77,8 @@ export default function McpServer() { const switchSelectionMode = useCallback(() => { setSelectionMode((prev) => !prev); - }, []); + resetSelection(); + }, [resetSelection]); return ( { - deleteMcpServer(selectedList); + const resetSelection = useCallback(() => { + setSelectedList([]); + }, []); + + const handleDelete = useCallback(async () => { + const deletedIds = selectedList; + const ret = await deleteMcpServer(deletedIds); + if (ret.code === 0) { + setSelectedList((list) => + list.filter((id) => !deletedIds.includes(id)), + ); + } }, [deleteMcpServer, selectedList]); const handleSelectChange = useCallback((id: string, checked: boolean) => { @@ -66,6 +76,7 @@ export function useBulkOperateMCP(mcpList: IMcpServer[]) { handleDelete, handleExportMcp: handleExportMcpJson(selectedList), handleSelectAll, + resetSelection, }; }