| 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 } | |
| } | |
| // Extract IDE name from config if available | |
| 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]) | |
| } | |