useMergedClients.ts
1 import uniqBy from 'lodash-es/uniqBy.js' 2 import { useMemo } from 'react' 3 import type { MCPServerConnection } from '../services/mcp/types.js' 4 5 export function mergeClients( 6 initialClients: MCPServerConnection[] | undefined, 7 mcpClients: readonly MCPServerConnection[] | undefined, 8 ): MCPServerConnection[] { 9 if (initialClients && mcpClients && mcpClients.length > 0) { 10 return uniqBy([...initialClients, ...mcpClients], 'name') 11 } 12 return initialClients || [] 13 } 14 15 export function useMergedClients( 16 initialClients: MCPServerConnection[] | undefined, 17 mcpClients: MCPServerConnection[] | undefined, 18 ): MCPServerConnection[] { 19 return useMemo( 20 () => mergeClients(initialClients, mcpClients), 21 [initialClients, mcpClients], 22 ) 23 }