Skip to content

Commit 75139d1

Browse files
authored
refactor(site): update versions table design (#9540)
1 parent 1bcc415 commit 75139d1

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

site/src/components/VersionsTable/VersionRow.tsx

+11-7
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ import { combineClasses } from "utils/combineClasses"
1515
export interface VersionRowProps {
1616
version: TemplateVersion
1717
isActive: boolean
18+
isLatest: boolean
1819
onPromoteClick?: (templateVersionId: string) => void
1920
}
2021

2122
export const VersionRow: React.FC<VersionRowProps> = ({
2223
version,
2324
isActive,
25+
isLatest,
2426
onPromoteClick,
2527
}) => {
2628
const styles = useStyles()
@@ -68,22 +70,24 @@ export const VersionRow: React.FC<VersionRowProps> = ({
6870
</span>
6971
</Stack>
7072
</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 && (
7578
<Button
7679
className={styles.promoteButton}
80+
disabled={isActive}
7781
onClick={(e) => {
7882
e.preventDefault()
7983
e.stopPropagation()
8084
onPromoteClick(version.id)
8185
}}
8286
>
83-
Promote version
87+
Promote
8488
</Button>
85-
)
86-
)}
89+
)}
90+
</Stack>
8791
</Stack>
8892
</TableCell>
8993
</TimelineEntry>

site/src/components/VersionsTable/VersionsTable.tsx

+16-1
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,35 @@ export const VersionsTable: FC<React.PropsWithChildren<VersionsTableProps>> = ({
2929
onPromoteClick,
3030
activeVersionId,
3131
}) => {
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+
3246
return (
3347
<TableContainer>
3448
<Table data-testid="versions-table">
3549
<TableBody>
3650
{versions ? (
3751
<Timeline
38-
items={versions.slice().reverse()}
52+
items={[...versions].reverse()}
3953
getDate={(version) => new Date(version.created_at)}
4054
row={(version) => (
4155
<VersionRow
4256
onPromoteClick={onPromoteClick}
4357
version={version}
4458
key={version.id}
4559
isActive={activeVersionId === version.id}
60+
isLatest={latestVersionId === version.id}
4661
/>
4762
)}
4863
/>

0 commit comments

Comments
 (0)