diff --git a/site/src/components/BuildsTable/BuildsTable.tsx b/site/src/components/BuildsTable/BuildsTable.tsx index 8f108b653025b..86158e4853776 100644 --- a/site/src/components/BuildsTable/BuildsTable.tsx +++ b/site/src/components/BuildsTable/BuildsTable.tsx @@ -9,7 +9,7 @@ import useTheme from "@material-ui/styles/useTheme" import { FC } from "react" import { useNavigate } from "react-router-dom" import * as TypesGen from "../../api/typesGenerated" -import { displayWorkspaceBuildDuration, getDisplayStatus } from "../../util/workspace" +import { displayWorkspaceBuildDuration, getDisplayWorkspaceBuildStatus } from "../../util/workspace" import { EmptyState } from "../EmptyState/EmptyState" import { TableLoader } from "../TableLoader/TableLoader" @@ -47,7 +47,7 @@ export const BuildsTable: FC = ({ builds, className }) => { {isLoading && } {builds && builds.map((build) => { - const status = getDisplayStatus(theme, build) + const status = getDisplayWorkspaceBuildStatus(theme, build) const navigateToBuildPage = () => { navigate(`/builds/${build.id}`) diff --git a/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx b/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx index 5087e4a6cb476..485ba0e8f7021 100644 --- a/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx +++ b/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx @@ -5,7 +5,7 @@ import { Link as RouterLink } from "react-router-dom" import { WorkspaceBuild } from "../../api/typesGenerated" import { CardRadius, MONOSPACE_FONT_FAMILY } from "../../theme/constants" import { combineClasses } from "../../util/combineClasses" -import { displayWorkspaceBuildDuration, getDisplayStatus } from "../../util/workspace" +import { displayWorkspaceBuildDuration, getDisplayWorkspaceBuildStatus } from "../../util/workspace" export interface WorkspaceBuildStatsProps { build: WorkspaceBuild @@ -14,7 +14,7 @@ export interface WorkspaceBuildStatsProps { export const WorkspaceBuildStats: FC = ({ build }) => { const styles = useStyles() const theme = useTheme() - const status = getDisplayStatus(theme, build) + const status = getDisplayWorkspaceBuildStatus(theme, build) return (
diff --git a/site/src/util/workspace.ts b/site/src/util/workspace.ts index 8ed7b2347d60a..95f85295a0a81 100644 --- a/site/src/util/workspace.ts +++ b/site/src/util/workspace.ts @@ -136,6 +136,56 @@ export const getDisplayStatus = ( throw new Error("unknown status " + status) } +export const DisplayWorkspaceBuildStatusLanguage = { + succeeded: "Succeeded", + pending: "Pending", + running: "Running", + canceling: "Canceling", + canceled: "Canceled", + failed: "Failed", +} + +export const getDisplayWorkspaceBuildStatus = ( + theme: Theme, + build: TypesGen.WorkspaceBuild, +): { + color: string + status: string +} => { + switch (build.job.status) { + case "succeeded": + return { + color: theme.palette.success.main, + status: `⦿ ${DisplayWorkspaceBuildStatusLanguage.succeeded}`, + } + case "pending": + return { + color: theme.palette.text.secondary, + status: `⦿ ${DisplayWorkspaceBuildStatusLanguage.pending}`, + } + case "running": + return { + color: theme.palette.primary.main, + status: `⦿ ${DisplayWorkspaceBuildStatusLanguage.running}`, + } + case "failed": + return { + color: theme.palette.text.secondary, + status: `⦸ ${DisplayWorkspaceBuildStatusLanguage.failed}`, + } + case "canceling": + return { + color: theme.palette.warning.light, + status: `◍ ${DisplayWorkspaceBuildStatusLanguage.canceling}`, + } + case "canceled": + return { + color: theme.palette.text.secondary, + status: `◍ ${DisplayWorkspaceBuildStatusLanguage.canceled}`, + } + } +} + export const getWorkspaceBuildDurationInSeconds = (build: TypesGen.WorkspaceBuild): number | undefined => { const isCompleted = build.job.started_at && build.job.completed_at pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy