@@ -6,10 +6,12 @@ import { createDayString } from "util/createDayString"
6
6
import {
7
7
getDisplayWorkspaceBuildInitiatedBy ,
8
8
getDisplayWorkspaceTemplateName ,
9
+ isWorkspaceOn ,
9
10
} from "util/workspace"
10
11
import { Workspace } from "../../api/typesGenerated"
11
12
import { Stats , StatsItem } from "components/Stats/Stats"
12
13
import upperFirst from "lodash/upperFirst"
14
+ import { autostopDisplay } from "util/schedule"
13
15
14
16
const Language = {
15
17
workspaceDetails : "Workspace Details" ,
@@ -81,6 +83,12 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
81
83
</ >
82
84
}
83
85
/>
86
+ { shouldDisplayScheduleLabel ( workspace ) && (
87
+ < StatsItem
88
+ label = { getScheduleLabel ( workspace ) }
89
+ value = { autostopDisplay ( workspace ) }
90
+ />
91
+ ) }
84
92
{ workspace . latest_build . daily_cost > 0 && (
85
93
< StatsItem
86
94
label = { Language . costLabel }
@@ -92,3 +100,21 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
92
100
</ Stats >
93
101
)
94
102
}
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