1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import * as React from "react";
6 import { Table, TableHead, TableCell, TableRow, TableBody, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
7 import { UserResource, getUserDisplayName } from "~/models/user";
9 type CssRules = 'cell';
11 const styles: StyleRulesCallback<CssRules> = theme => ({
13 paddingRight: theme.spacing.unit * 2
17 interface MetadataTable {
26 interface MetadataProps {
27 items: MetadataTable[];
32 export const MetadataTab = withStyles(styles)((props: MetadataProps & WithStyles<CssRules>) =>
36 <TableCell>uuid</TableCell>
37 <TableCell>link_class</TableCell>
38 <TableCell>name</TableCell>
39 <TableCell>tail</TableCell>
40 <TableCell>head</TableCell>
41 <TableCell>properties</TableCell>
45 {props.items.map((it, index) =>
46 <TableRow key={index}>
47 <TableCell className={props.classes.cell}>{it.uuid}</TableCell>
48 <TableCell className={props.classes.cell}>{it.linkClass}</TableCell>
49 <TableCell className={props.classes.cell}>{it.name}</TableCell>
50 <TableCell className={props.classes.cell}>{props.user && `User: ${getUserDisplayName(props.user)}`}</TableCell>
51 <TableCell className={props.classes.cell}>{it.headUuid === props.uuid ? 'this' : it.headUuid}</TableCell>
52 <TableCell className={props.classes.cell}>{JSON.stringify(it.properties)}</TableCell>