Skip to content

Commit eeafd82

Browse files
committed
Display schedule info as stats
1 parent 18a96d5 commit eeafd82

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

site/src/components/WorkspaceStats/WorkspaceStats.tsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ import { createDayString } from "util/createDayString"
66
import {
77
getDisplayWorkspaceBuildInitiatedBy,
88
getDisplayWorkspaceTemplateName,
9+
isWorkspaceOn,
910
} from "util/workspace"
1011
import { Workspace } from "../../api/typesGenerated"
1112
import { Stats, StatsItem } from "components/Stats/Stats"
1213
import upperFirst from "lodash/upperFirst"
14+
import { autostopDisplay } from "util/schedule"
1315

1416
const Language = {
1517
workspaceDetails: "Workspace Details",
@@ -81,6 +83,12 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
8183
</>
8284
}
8385
/>
86+
{shouldDisplayScheduleLabel(workspace) && (
87+
<StatsItem
88+
label={getScheduleLabel(workspace)}
89+
value={autostopDisplay(workspace)}
90+
/>
91+
)}
8492
{workspace.latest_build.daily_cost > 0 && (
8593
<StatsItem
8694
label={Language.costLabel}
@@ -92,3 +100,21 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
92100
</Stats>
93101
)
94102
}
103+
104+
export const canEditDeadline = (workspace: Workspace): boolean => {
105+
return isWorkspaceOn(workspace) && Boolean(workspace.latest_build.deadline)
106+
}
107+
108+
export const shouldDisplayScheduleLabel = (workspace: Workspace): boolean => {
109+
if (canEditDeadline(workspace)) {
110+
return true
111+
}
112+
if (isWorkspaceOn(workspace)) {
113+
return false
114+
}
115+
return Boolean(workspace.autostart_schedule)
116+
}
117+
118+
const getScheduleLabel = (workspace: Workspace) => {
119+
return isWorkspaceOn(workspace) ? "Stops at" : "Starts at"
120+
}

0 commit comments

Comments
 (0)