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