refactor: remove activity column from workspaces table (#19555)

Fixes https://github.com/coder/coder/issues/19504
This commit is contained in:
Bruno Quaresma
2025-08-27 15:52:27 -03:00
committed by GitHub
parent 6c01a772eb
commit 491977db90
2 changed files with 3 additions and 123 deletions
@@ -2,12 +2,10 @@ import {
MockBuildInfo,
MockOrganization,
MockPendingProvisionerJob,
MockStoppedWorkspace,
MockTemplate,
MockUserOwner,
MockWorkspace,
MockWorkspaceAgent,
MockWorkspaceAppStatus,
mockApiError,
} from "testHelpers/entities";
import {
@@ -383,68 +381,3 @@ export const ShowOrganizations: Story = {
expect(accessibleTableCell).toBeDefined();
},
};
export const WithLatestAppStatus: Story = {
args: {
workspaces: [
{
...MockWorkspace,
name: "long-app-status",
latest_app_status: {
...MockWorkspaceAppStatus,
message:
"This is a long message that will wrap around the component. It should wrap many times because this is very very very very very long.",
},
},
{
...MockWorkspace,
name: "no-app-status",
latest_app_status: null,
},
{
...MockWorkspace,
name: "app-status-working",
latest_app_status: {
...MockWorkspaceAppStatus,
state: "working",
message: "Fixing the competitors page...",
},
},
{
...MockWorkspace,
name: "app-status-failure",
latest_app_status: {
...MockWorkspaceAppStatus,
state: "failure",
message: "I couldn't figure it out...",
},
},
{
...{
...MockStoppedWorkspace,
latest_build: {
...MockStoppedWorkspace.latest_build,
resources: [],
},
},
name: "stopped-app-status-failure",
latest_app_status: {
...MockWorkspaceAppStatus,
state: "failure",
message: "I couldn't figure it out...",
uri: "",
},
},
{
...MockWorkspace,
name: "app-status-working-with-uri",
latest_app_status: {
...MockWorkspaceAppStatus,
state: "working",
message: "Updating the README...",
uri: "file:///home/coder/projects/coder/coder/README.md",
},
},
],
},
};
@@ -64,7 +64,6 @@ import {
import { useAppLink } from "modules/apps/useAppLink";
import { useDashboard } from "modules/dashboard/useDashboard";
import { abilitiesByWorkspaceStatus } from "modules/workspaces/actions";
import { WorkspaceAppStatus } from "modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus";
import { WorkspaceBuildCancelDialog } from "modules/workspaces/WorkspaceBuildCancelDialog/WorkspaceBuildCancelDialog";
import { WorkspaceDormantBadge } from "modules/workspaces/WorkspaceDormantBadge/WorkspaceDormantBadge";
import { WorkspaceMoreActions } from "modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions";
@@ -79,7 +78,6 @@ import {
type FC,
type PropsWithChildren,
type ReactNode,
useMemo,
useState,
} from "react";
import { useMutation, useQuery, useQueryClient } from "react-query";
@@ -116,51 +114,12 @@ export const WorkspacesTable: FC<WorkspacesTableProps> = ({
onActionError,
}) => {
const dashboard = useDashboard();
const workspaceIDToAppByStatus = useMemo(() => {
return (
workspaces?.reduce(
(acc, workspace) => {
if (!workspace.latest_app_status) {
return acc;
}
for (const resource of workspace.latest_build.resources) {
for (const agent of resource.agents ?? []) {
for (const app of agent.apps ?? []) {
if (app.id === workspace.latest_app_status.app_id) {
acc[workspace.id] = { app, agent };
break;
}
}
}
}
return acc;
},
{} as Record<
string,
{
app: WorkspaceApp;
agent: WorkspaceAgent;
}
>,
) || {}
);
}, [workspaces]);
const hasActivity = useMemo(
() => Object.keys(workspaceIDToAppByStatus).length > 0,
[workspaceIDToAppByStatus],
);
const tableColumnSize = {
name: "w-2/6",
template: hasActivity ? "w-1/6" : "w-2/6",
status: hasActivity ? "w-1/6" : "w-2/6",
activity: "w-2/6",
};
return (
<Table>
<TableHeader>
<TableRow>
<TableHead className={tableColumnSize.name}>
<TableHead className="w-1/3">
<div className="flex items-center gap-2">
{canCheckWorkspaces && (
<Checkbox
@@ -184,11 +143,8 @@ export const WorkspacesTable: FC<WorkspacesTableProps> = ({
Name
</div>
</TableHead>
<TableHead className={tableColumnSize.template}>Template</TableHead>
<TableHead className={tableColumnSize.status}>Status</TableHead>
{hasActivity && (
<TableHead className={tableColumnSize.activity}>Activity</TableHead>
)}
<TableHead className="w-1/3">Template</TableHead>
<TableHead className="w-1/3">Status</TableHead>
<TableHead className="w-0">
<span className="sr-only">Actions</span>
</TableHead>
@@ -302,15 +258,6 @@ export const WorkspacesTable: FC<WorkspacesTableProps> = ({
<WorkspaceStatusCell workspace={workspace} />
{hasActivity && (
<TableCell>
<WorkspaceAppStatus
status={workspace.latest_app_status}
disabled={workspace.latest_build.status !== "running"}
/>
</TableCell>
)}
<WorkspaceActionsCell
workspace={workspace}
onActionSuccess={onActionSuccess}