diff --git a/site/src/pages/TaskPage/TaskPage.stories.tsx b/site/src/pages/TaskPage/TaskPage.stories.tsx index 1b1abcf6b5ef4..e5d68ef6c8493 100644 --- a/site/src/pages/TaskPage/TaskPage.stories.tsx +++ b/site/src/pages/TaskPage/TaskPage.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react"; -import { spyOn } from "@storybook/test"; +import { expect, spyOn, within } from "@storybook/test"; import { MockFailedWorkspace, MockStartingWorkspace, @@ -115,9 +115,8 @@ export const Active: Story = { ...MockWorkspaceApp, id: "claude-code", display_name: "Claude Code", + slug: "claude-code", icon: "/icon/claude.svg", - url: `${window.location.protocol}/iframe.html?viewMode=story&id=pages-terminal--ready&args=&globals=`, - external: true, statuses: [ MockWorkspaceAppStatus, { @@ -131,11 +130,13 @@ export const Active: Story = { { ...MockWorkspaceApp, id: "vscode", + slug: "vscode", display_name: "VS Code Web", icon: "/icon/code.svg", }, { ...MockWorkspaceApp, + slug: "zed", id: "zed", display_name: "Zed", icon: "/icon/zed.svg", @@ -153,4 +154,15 @@ export const Active: Story = { }, }); }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + const vscodeIframe = await canvas.findByTitle("VS Code Web"); + const zedIframe = await canvas.findByTitle("Zed"); + const claudeIframe = await canvas.findByTitle("Claude Code"); + + expect(vscodeIframe).not.toBeVisible(); + expect(zedIframe).not.toBeVisible(); + expect(claudeIframe).toBeVisible(); + }, }; diff --git a/site/src/pages/TaskPage/TaskPage.tsx b/site/src/pages/TaskPage/TaskPage.tsx index e863ade7f37f4..272acecbe0c0e 100644 --- a/site/src/pages/TaskPage/TaskPage.tsx +++ b/site/src/pages/TaskPage/TaskPage.tsx @@ -19,7 +19,6 @@ import { TooltipProvider, TooltipTrigger, } from "components/Tooltip/Tooltip"; -import { useProxy } from "contexts/ProxyContext"; import { ArrowLeftIcon, ChevronDownIcon, @@ -27,7 +26,6 @@ import { RotateCcwIcon, } from "lucide-react"; import { AppStatusIcon } from "modules/apps/AppStatusIcon"; -import { getAppHref } from "modules/apps/apps"; import { useAppLink } from "modules/apps/useAppLink"; import { AI_PROMPT_PARAMETER_NAME, type Task } from "modules/tasks/tasks"; import { WorkspaceAppStatus } from "modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus"; @@ -312,17 +310,6 @@ const TaskApps: FC = ({ task }) => { throw new Error(`Agent for app ${activeAppId} not found in task workspace`); } - const { proxy } = useProxy(); - const [iframeSrc, setIframeSrc] = useState(() => { - const src = getAppHref(activeApp, { - agent, - workspace: task.workspace, - path: proxy.preferredPathAppURL, - host: proxy.preferredWildcardHostname, - }); - return src; - }); - const embeddedApps = apps.filter((app) => !app.external); const externalApps = apps.filter((app) => app.external); @@ -344,7 +331,6 @@ const TaskApps: FC = ({ task }) => { e.preventDefault(); setActiveAppId(app.id); - setIframeSrc(e.currentTarget.href); }} /> ))} @@ -387,11 +373,16 @@ const TaskApps: FC = ({ task }) => {
-