| import { useMemo } from 'react' |
| import type { MCPServerConnection } from '../services/mcp/types.js' |
|
|
| export type IdeStatus = 'connected' | 'disconnected' | 'pending' | null |
|
|
| type IdeConnectionResult = { |
| status: IdeStatus |
| ideName: string | null |
| } |
|
|
| export function useIdeConnectionStatus( |
| mcpClients?: MCPServerConnection[], |
| ): IdeConnectionResult { |
| return useMemo(() => { |
| const ideClient = mcpClients?.find(client => client.name === 'ide') |
| if (!ideClient) { |
| return { status: null, ideName: null } |
| } |
| |
| const config = ideClient.config |
| const ideName = |
| config.type === 'sse-ide' || config.type === 'ws-ide' |
| ? config.ideName |
| : null |
| if (ideClient.type === 'connected') { |
| return { status: 'connected', ideName } |
| } |
| if (ideClient.type === 'pending') { |
| return { status: 'pending', ideName } |
| } |
| return { status: 'disconnected', ideName } |
| }, [mcpClients]) |
| } |
|
|