7
7
getDisplayWorkspaceBuildInitiatedBy ,
8
8
getDisplayWorkspaceTemplateName ,
9
9
isWorkspaceOn ,
10
+ workspaceUpdatePolicy ,
10
11
} from "utils/workspace" ;
11
12
import { Workspace } from "api/typesGenerated" ;
12
13
import { Stats , StatsItem } from "components/Stats/Stats" ;
@@ -26,6 +27,12 @@ import {
26
27
PopoverTrigger ,
27
28
usePopover ,
28
29
} from "components/Popover/Popover" ;
30
+ import { useTemplatePoliciesEnabled } from "components/Dashboard/DashboardProvider" ;
31
+ import {
32
+ HelpTooltip ,
33
+ HelpTooltipText ,
34
+ } from "components/HelpTooltip/HelpTooltip" ;
35
+ import { Stack } from "components/Stack/Stack" ;
29
36
30
37
const Language = {
31
38
workspaceDetails : "Workspace Details" ,
@@ -37,13 +44,15 @@ const Language = {
37
44
upToDate : "Up to date" ,
38
45
byLabel : "Last built by" ,
39
46
costLabel : "Daily cost" ,
47
+ updatePolicy : "Update policy" ,
40
48
} ;
41
49
42
50
export interface WorkspaceStatsProps {
43
51
workspace : Workspace ;
44
52
maxDeadlineIncrease : number ;
45
53
maxDeadlineDecrease : number ;
46
54
canUpdateWorkspace : boolean ;
55
+ canChangeVersions : boolean ;
47
56
quotaBudget ?: number ;
48
57
onDeadlinePlus : ( hours : number ) => void ;
49
58
onDeadlineMinus : ( hours : number ) => void ;
@@ -56,6 +65,7 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
56
65
maxDeadlineDecrease,
57
66
maxDeadlineIncrease,
58
67
canUpdateWorkspace,
68
+ canChangeVersions,
59
69
handleUpdate,
60
70
onDeadlineMinus,
61
71
onDeadlinePlus,
@@ -67,6 +77,7 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
67
77
const styles = useStyles ( ) ;
68
78
const deadlinePlusEnabled = maxDeadlineIncrease >= 1 ;
69
79
const deadlineMinusEnabled = maxDeadlineDecrease >= 1 ;
80
+ const templatePoliciesEnabled = useTemplatePoliciesEnabled ( ) ;
70
81
71
82
return (
72
83
< >
@@ -198,6 +209,27 @@ export const WorkspaceStats: FC<WorkspaceStatsProps> = ({
198
209
} `}
199
210
/>
200
211
) }
212
+ { templatePoliciesEnabled && (
213
+ < Stack direction = "row" spacing = { 0.5 } >
214
+ < StatsItem
215
+ className = { styles . statsItem }
216
+ label = { Language . updatePolicy }
217
+ value = { upperFirst (
218
+ workspaceUpdatePolicy ( workspace , canChangeVersions ) ,
219
+ ) }
220
+ />
221
+ { workspace . automatic_updates === "never" &&
222
+ workspace . template_require_active_version &&
223
+ ! canChangeVersions && (
224
+ < HelpTooltip >
225
+ < HelpTooltipText >
226
+ Your workspace has not opted in to automatic updates but
227
+ your template requires updating to the active version.
228
+ </ HelpTooltipText >
229
+ </ HelpTooltip >
230
+ ) }
231
+ </ Stack >
232
+ ) }
201
233
</ Stats >
202
234
</ >
203
235
) ;
0 commit comments