File tree 2 files changed +27
-8
lines changed
site/src/components/VersionsTable
2 files changed +27
-8
lines changed Original file line number Diff line number Diff line change @@ -15,12 +15,14 @@ import { combineClasses } from "utils/combineClasses"
15
15
export interface VersionRowProps {
16
16
version : TemplateVersion
17
17
isActive : boolean
18
+ isLatest : boolean
18
19
onPromoteClick ?: ( templateVersionId : string ) => void
19
20
}
20
21
21
22
export const VersionRow : React . FC < VersionRowProps > = ( {
22
23
version,
23
24
isActive,
25
+ isLatest,
24
26
onPromoteClick,
25
27
} ) => {
26
28
const styles = useStyles ( )
@@ -68,22 +70,24 @@ export const VersionRow: React.FC<VersionRowProps> = ({
68
70
</ span >
69
71
</ Stack >
70
72
</ Stack >
71
- { isActive ? (
72
- < Pill text = "Active version" type = "success" />
73
- ) : (
74
- onPromoteClick && (
73
+
74
+ < Stack direction = "row" alignItems = "center" spacing = { 2 } >
75
+ { isActive && < Pill text = "Active" type = "success" /> }
76
+ { isLatest && < Pill text = "Newest" type = "info" /> }
77
+ { onPromoteClick && (
75
78
< Button
76
79
className = { styles . promoteButton }
80
+ disabled = { isActive }
77
81
onClick = { ( e ) => {
78
82
e . preventDefault ( )
79
83
e . stopPropagation ( )
80
84
onPromoteClick ( version . id )
81
85
} }
82
86
>
83
- Promote version
87
+ Promote
84
88
</ Button >
85
- )
86
- ) }
89
+ ) }
90
+ </ Stack >
87
91
</ Stack >
88
92
</ TableCell >
89
93
</ TimelineEntry >
Original file line number Diff line number Diff line change @@ -29,20 +29,35 @@ export const VersionsTable: FC<React.PropsWithChildren<VersionsTableProps>> = ({
29
29
onPromoteClick,
30
30
activeVersionId,
31
31
} ) => {
32
+ const latestVersionId = versions ?. reduce (
33
+ ( latestSoFar , against ) => {
34
+ if ( ! latestSoFar ) {
35
+ return against
36
+ }
37
+
38
+ return new Date ( against . updated_at ) . getTime ( ) >
39
+ new Date ( latestSoFar . updated_at ) . getTime ( )
40
+ ? against
41
+ : latestSoFar
42
+ } ,
43
+ undefined as TypesGen . TemplateVersion | undefined ,
44
+ ) ?. id
45
+
32
46
return (
33
47
< TableContainer >
34
48
< Table data-testid = "versions-table" >
35
49
< TableBody >
36
50
{ versions ? (
37
51
< Timeline
38
- items = { versions . slice ( ) . reverse ( ) }
52
+ items = { [ ... versions ] . reverse ( ) }
39
53
getDate = { ( version ) => new Date ( version . created_at ) }
40
54
row = { ( version ) => (
41
55
< VersionRow
42
56
onPromoteClick = { onPromoteClick }
43
57
version = { version }
44
58
key = { version . id }
45
59
isActive = { activeVersionId === version . id }
60
+ isLatest = { latestVersionId === version . id }
46
61
/>
47
62
) }
48
63
/>
You can’t perform that action at this time.
0 commit comments