Skip to content

Commit 6f9a9e9

Browse files
committed
render provisioners in a table
1 parent f30fa76 commit 6f9a9e9

File tree

2 files changed

+41
-26
lines changed

2 files changed

+41
-26
lines changed

site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/OrganizationProvisionerKeysPageView.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export const OrganizationProvisionerKeysPageView: FC<
8787
.map((pkd) => (
8888
<ProvisionerKeyRow
8989
key={pkd.key.id}
90+
buildVersion={buildVersion}
9091
provisionerKey={pkd.key}
9192
provisioners={pkd.daemons}
9293
defaultIsOpen={false}

site/src/pages/OrganizationSettingsPage/OrganizationProvisionerKeysPage/ProvisionerKeyRow.tsx

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
11
import type { ProvisionerDaemon, ProvisionerKey } from "api/typesGenerated";
22
import { Button } from "components/Button/Button";
33
import { CopyButton } from "components/CopyButton/CopyButton";
4-
import { TableCell, TableRow } from "components/Table/Table";
4+
import {
5+
Table,
6+
TableCell,
7+
TableHead,
8+
TableHeader,
9+
TableRow,
10+
} from "components/Table/Table";
511
import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
612
import { ProvisionerTag } from "modules/provisioners/ProvisionerTags";
13+
import { LastConnectionHead } from "pages/OrganizationSettingsPage/OrganizationProvisionersPage/LastConnectionHead";
14+
import { ProvisionerRow } from "pages/OrganizationSettingsPage/OrganizationProvisionersPage/ProvisionerRow";
715
import { type FC, useState } from "react";
8-
import { Link as RouterLink } from "react-router-dom";
916
import { cn } from "utils/cn";
1017
import { relativeTime } from "utils/time";
1118

1219
type ProvisionerKeyRowProps = {
1320
readonly provisionerKey: ProvisionerKey;
1421
readonly provisioners: readonly ProvisionerDaemon[];
22+
readonly buildVersion: string | undefined;
1523
defaultIsOpen: boolean;
1624
};
1725

1826
export const ProvisionerKeyRow: FC<ProvisionerKeyRowProps> = ({
1927
provisionerKey,
2028
provisioners,
29+
buildVersion,
2130
defaultIsOpen = false,
2231
}) => {
2332
const [isOpen, setIsOpen] = useState(defaultIsOpen);
@@ -61,33 +70,38 @@ export const ProvisionerKeyRow: FC<ProvisionerKeyRowProps> = ({
6170

6271
{isOpen && (
6372
<TableRow>
64-
<TableCell colSpan={999} className="p-4 border-t-0">
73+
<TableCell colSpan={999} className="p-0">
6574
{provisioners.length === 0 ? (
66-
<span className="text-muted-foreground">
67-
No provisioners found for this key.
68-
</span>
75+
<TableRow>
76+
<TableCell colSpan={999} className="p-4 border-t-0">
77+
<span className="text-muted-foreground">
78+
No provisioners found for this key.
79+
</span>
80+
</TableCell>
81+
</TableRow>
6982
) : (
70-
<dl>
71-
<dt>Provisioners:</dt>
72-
{provisioners.map((provisioner) => (
73-
<dd key={provisioner.id}>
74-
<span className="font-mono text-content-primary">
75-
{provisioner.name} ({provisioner.id}){" "}
76-
</span>
77-
<CopyButton
78-
text={provisioner.id}
79-
label="Copy provisioner ID"
80-
/>
81-
<Button size="xs" variant="outline" asChild>
82-
<RouterLink
83-
to={`../provisioners?${new URLSearchParams({ ids: provisioner.id })}`}
84-
>
85-
View provisioner
86-
</RouterLink>
87-
</Button>
88-
</dd>
83+
<Table>
84+
<TableHeader>
85+
<TableRow>
86+
<TableHead>Name</TableHead>
87+
<TableHead>Key</TableHead>
88+
<TableHead>Version</TableHead>
89+
<TableHead>Status</TableHead>
90+
<TableHead>Tags</TableHead>
91+
<TableHead>
92+
<LastConnectionHead />
93+
</TableHead>
94+
</TableRow>
95+
</TableHeader>
96+
{provisioners.map((p) => (
97+
<ProvisionerRow
98+
key={p.id}
99+
buildVersion={buildVersion}
100+
provisioner={p}
101+
defaultIsOpen={false}
102+
/>
89103
))}
90-
</dl>
104+
</Table>
91105
)}
92106
</TableCell>
93107
</TableRow>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy