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, }; }