Skip to content

Commit da376fd

Browse files
committed
replace getDisplayInitiatorBuildReason with buildReasonLabels and systemBuildReasons
1 parent 3d33137 commit da376fd

File tree

4 files changed

+31
-37
lines changed

4 files changed

+31
-37
lines changed

site/src/modules/workspaces/WorkspaceBuildData/WorkspaceBuildData.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { BuildIcon } from "components/BuildIcon/BuildIcon";
66
import { InfoIcon } from "lucide-react";
77
import { createDayString } from "utils/createDayString";
88
import {
9-
getDisplayInitiatorBuildReason,
9+
buildReasonLabels,
1010
getDisplayWorkspaceBuildInitiatedBy,
1111
getDisplayWorkspaceBuildStatus,
12+
systemBuildReasons,
1213
} from "utils/workspace";
1314

1415
export const WorkspaceBuildData = ({ build }: { build: WorkspaceBuild }) => {
@@ -42,9 +43,9 @@ export const WorkspaceBuildData = ({ build }: { build: WorkspaceBuild }) => {
4243
<span css={{ fontWeight: 500 }}>
4344
{getDisplayWorkspaceBuildInitiatedBy(build)}
4445
</span>
45-
{getDisplayInitiatorBuildReason(build.reason) &&
46+
{!systemBuildReasons.includes(build.reason) &&
4647
build.transition === "start" && (
47-
<Tooltip title={getDisplayInitiatorBuildReason(build.reason)}>
48+
<Tooltip title={buildReasonLabels[build.reason]}>
4849
<InfoIcon
4950
css={(theme) => ({
5051
color: theme.palette.info.light,

site/src/pages/AuditPage/AuditLogRow/AuditLogDescription/BuildAuditDescription.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Link from "@mui/material/Link";
22
import type { AuditLog } from "api/typesGenerated";
33
import { type FC, useMemo } from "react";
44
import { Link as RouterLink } from "react-router-dom";
5+
import { systemBuildReasons } from "utils/workspace";
56

67
interface BuildAuditDescriptionProps {
78
auditLog: AuditLog;
@@ -12,10 +13,9 @@ export const BuildAuditDescription: FC<BuildAuditDescriptionProps> = ({
1213
}) => {
1314
const workspaceName = auditLog.additional_fields?.workspace_name?.trim();
1415
// workspaces can be started/stopped/deleted by a user, or kicked off automatically by Coder
15-
const systemReasons = ["autostart", "autostop", "dormancy"];
1616
const user =
1717
auditLog.additional_fields?.build_reason &&
18-
systemReasons.includes(auditLog.additional_fields?.build_reason)
18+
systemBuildReasons.includes(auditLog.additional_fields?.build_reason)
1919
? "Coder automatically"
2020
: auditLog.user
2121
? auditLog.user.username.trim()

site/src/pages/AuditPage/AuditLogRow/AuditLogRow.tsx

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Collapse from "@mui/material/Collapse";
33
import Link from "@mui/material/Link";
44
import TableCell from "@mui/material/TableCell";
55
import Tooltip from "@mui/material/Tooltip";
6-
import type { AuditLog } from "api/typesGenerated";
6+
import type { AuditLog, BuildReason } from "api/typesGenerated";
77
import { Avatar } from "components/Avatar/Avatar";
88
import { DropdownArrow } from "components/DropdownArrow/DropdownArrow";
99
import { Stack } from "components/Stack/Stack";
@@ -14,7 +14,7 @@ import { NetworkIcon } from "lucide-react";
1414
import { type FC, useState } from "react";
1515
import { Link as RouterLink } from "react-router-dom";
1616
import userAgentParser from "ua-parser-js";
17-
import { getDisplayInitiatorBuildReason } from "utils/workspace";
17+
import { buildReasonLabels } from "utils/workspace";
1818
import { AuditLogDescription } from "./AuditLogDescription/AuditLogDescription";
1919
import { AuditLogDiff } from "./AuditLogDiff/AuditLogDiff";
2020
import {
@@ -167,16 +167,14 @@ export const AuditLogRow: FC<AuditLogRowProps> = ({
167167
</Link>
168168
</div>
169169
)}
170-
{getDisplayInitiatorBuildReason(
171-
auditLog.additional_fields?.build_reason,
172-
) &&
170+
{auditLog.additional_fields?.build_reason &&
173171
auditLog.action === "start" && (
174172
<div>
175173
<h4 css={styles.auditLogInfoHeader}>Reason:</h4>
176174
<div>
177-
{getDisplayInitiatorBuildReason(
178-
auditLog.additional_fields?.build_reason,
179-
)}
175+
{buildReasonLabels[
176+
auditLog.additional_fields.build_reason as BuildReason
177+
]}
180178
</div>
181179
</div>
182180
)}
@@ -211,16 +209,14 @@ export const AuditLogRow: FC<AuditLogRowProps> = ({
211209
</strong>
212210
</span>
213211
)}
214-
{getDisplayInitiatorBuildReason(
215-
auditLog.additional_fields?.build_reason,
216-
) &&
212+
{auditLog.additional_fields?.build_reason &&
217213
auditLog.action === "start" && (
218214
<span css={styles.auditLogInfo}>
219215
<span>Reason: </span>
220216
<strong>
221-
{getDisplayInitiatorBuildReason(
222-
auditLog.additional_fields?.build_reason,
223-
)}
217+
{buildReasonLabels[
218+
auditLog.additional_fields.build_reason as BuildReason
219+
]}
224220
</strong>
225221
</span>
226222
)}

site/src/utils/workspace.tsx

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,24 +92,21 @@ export const getDisplayWorkspaceBuildInitiatedBy = (
9292
return undefined;
9393
};
9494

95-
export const getDisplayInitiatorBuildReason = (
96-
buildReason: string,
97-
): string | undefined => {
98-
switch (buildReason) {
99-
case "initiator":
100-
return "API";
101-
case "dashboard":
102-
return "Dashboard";
103-
case "cli":
104-
return "CLI";
105-
case "ssh_connection":
106-
return "SSH Connection";
107-
case "vscode_connection":
108-
return "VSCode Connection";
109-
case "jetbrains_connection":
110-
return "JetBrains Connection";
111-
}
112-
return undefined;
95+
export const systemBuildReasons = ["autostart", "autostop", "dormancy"];
96+
97+
export const buildReasonLabels: Record<TypesGen.BuildReason, string> = {
98+
// User build reasons
99+
initiator: "API",
100+
dashboard: "Dashboard",
101+
cli: "CLI",
102+
ssh_connection: "SSH Connection",
103+
vscode_connection: "VSCode Connection",
104+
jetbrains_connection: "JetBrains Connection",
105+
106+
// System build reasons
107+
autostart: "Autostart",
108+
autostop: "Autostop",
109+
dormancy: "Dormancy",
113110
};
114111

115112
const getWorkspaceBuildDurationInSeconds = (

0 commit comments

Comments
 (0)