/ hooks / useMergedClients.ts
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  }