diff --git a/site/src/modules/resources/AgentDevcontainerCard.tsx b/site/src/modules/resources/AgentDevcontainerCard.tsx index 4891c632bbc2a..65b32593c1418 100644 --- a/site/src/modules/resources/AgentDevcontainerCard.tsx +++ b/site/src/modules/resources/AgentDevcontainerCard.tsx @@ -12,13 +12,14 @@ import { HelpTooltipTitle, HelpTooltipTrigger, } from "components/HelpTooltip/HelpTooltip"; +import { Spinner } from "components/Spinner/Spinner"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "components/Tooltip/Tooltip"; -import { ExternalLinkIcon, Loader2Icon } from "lucide-react"; +import { ExternalLinkIcon } from "lucide-react"; import type { FC } from "react"; import { useEffect, useState } from "react"; import { portForwardURL } from "utils/portForward"; @@ -95,7 +96,8 @@ export const AgentDevcontainerCard: FC = ({

- {container.name} + dev container:{" "} + {container.name}

{container.devcontainer_dirty && ( @@ -117,18 +119,11 @@ export const AgentDevcontainerCard: FC = ({ { + spyOn(API, "getAgentContainers").mockResolvedValue({ + containers: [M.MockWorkspaceAgentContainer], + }); + }, +}; diff --git a/site/src/modules/resources/AgentRow.tsx b/site/src/modules/resources/AgentRow.tsx index 407c8c1bd84c6..d9fa0663423b4 100644 --- a/site/src/modules/resources/AgentRow.tsx +++ b/site/src/modules/resources/AgentRow.tsx @@ -1,5 +1,4 @@ import type { Interpolation, Theme } from "@emotion/react"; -import Button from "@mui/material/Button"; import Collapse from "@mui/material/Collapse"; import Divider from "@mui/material/Divider"; import Skeleton from "@mui/material/Skeleton"; @@ -12,6 +11,7 @@ import type { WorkspaceApp, } from "api/typesGenerated"; import { isAxiosError } from "axios"; +import { Button } from "components/Button/Button"; import { DropdownArrow } from "components/DropdownArrow/DropdownArrow"; import { DropdownMenu, @@ -71,7 +71,7 @@ export const AgentRow: FC = ({ const appSections = organizeAgentApps(agent.apps); const hasAppsToDisplay = !browser_only || appSections.some((it) => it.apps.length > 0); - const shouldDisplayApps = + const shouldDisplayAgentApps = (agent.status === "connected" && hasAppsToDisplay) || agent.status === "connecting"; const hasVSCodeApp = @@ -160,6 +160,14 @@ export const AgentRow: FC = ({ }, }); + // This is used to show the parent apps of the devcontainer. + const [showParentApps, setShowParentApps] = useState(false); + + let shouldDisplayAppsSection = shouldDisplayAgentApps; + if (containers && containers.length > 0 && !showParentApps) { + shouldDisplayAppsSection = false; + } + return ( = ({ )}
-
+
+ {containers && containers.length > 0 && ( + + )} + {!browser_only && agent.display_apps.includes("ssh_helper") && ( = ({ )} - {agent.status === "connected" && ( + {shouldDisplayAppsSection && (
- {shouldDisplayApps && ( + {shouldDisplayAgentApps && ( <> {showVSCode && ( = ({ diff --git a/site/src/modules/resources/SSHButton/SSHButton.tsx b/site/src/modules/resources/SSHButton/SSHButton.tsx index b1e5163207167..cd8f415f791fb 100644 --- a/site/src/modules/resources/SSHButton/SSHButton.tsx +++ b/site/src/modules/resources/SSHButton/SSHButton.tsx @@ -35,13 +35,9 @@ export const AgentSSHButton: FC = ({ return ( -