From ded0363e36e37bcd8780655e604487bd2b47f9a6 Mon Sep 17 00:00:00 2001 From: Chris Bagwell Date: Thu, 5 Mar 2026 17:53:15 -0600 Subject: [PATCH] fix: ensure VSCode tab popout works for V1 (#13118) --- .../vscode-tooltip-content.tsx | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/features/conversation/conversation-tabs/vscode-tooltip-content.tsx b/frontend/src/components/features/conversation/conversation-tabs/vscode-tooltip-content.tsx index 400340b11e..07509ab19d 100644 --- a/frontend/src/components/features/conversation/conversation-tabs/vscode-tooltip-content.tsx +++ b/frontend/src/components/features/conversation/conversation-tabs/vscode-tooltip-content.tsx @@ -2,33 +2,27 @@ import { FaExternalLinkAlt } from "react-icons/fa"; import { useTranslation } from "react-i18next"; import { I18nKey } from "#/i18n/declaration"; import { RUNTIME_INACTIVE_STATES } from "#/types/agent-state"; -import { transformVSCodeUrl } from "#/utils/vscode-url-helper"; -import { useConversationId } from "#/hooks/use-conversation-id"; -import ConversationService from "#/api/conversation-service/conversation-service.api"; import { useAgentState } from "#/hooks/use-agent-state"; +import { useUnifiedVSCodeUrl } from "#/hooks/query/use-unified-vscode-url"; export function VSCodeTooltipContent() { const { curAgentState } = useAgentState(); - const { t } = useTranslation(); - const { conversationId } = useConversationId(); + const { data, refetch } = useUnifiedVSCodeUrl(); const handleVSCodeClick = async (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); - if (conversationId) { - try { - const data = await ConversationService.getVSCodeUrl(conversationId); - if (data.vscode_url) { - const transformedUrl = transformVSCodeUrl(data.vscode_url); - if (transformedUrl) { - window.open(transformedUrl, "_blank"); - } - } - } catch (err) { - // Silently handle the error - } + let vscodeUrl = data?.url; + + if (!vscodeUrl) { + const result = await refetch(); + vscodeUrl = result.data?.url ?? null; + } + + if (vscodeUrl) { + window.open(vscodeUrl, "_blank", "noopener,noreferrer"); } };