X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/10ce16c28de952f6533ca3cc9df909269e3d2a53..46751b9305a7e991d484494facd1f40790254d40:/src/components/details-attribute/details-attribute.tsx diff --git a/src/components/details-attribute/details-attribute.tsx b/src/components/details-attribute/details-attribute.tsx index 56da6c17..d255d14b 100644 --- a/src/components/details-attribute/details-attribute.tsx +++ b/src/components/details-attribute/details-attribute.tsx @@ -5,9 +5,10 @@ import * as React from 'react'; import Typography from '@material-ui/core/Typography'; import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; -import { ArvadosTheme } from '../../common/custom-theme'; +import { ArvadosTheme } from '~/common/custom-theme'; +import * as classnames from "classnames"; -type CssRules = 'attribute' | 'label' | 'value' | 'link'; +type CssRules = 'attribute' | 'label' | 'value' | 'lowercaseValue' | 'link'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ attribute: { @@ -16,40 +17,55 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ marginBottom: theme.spacing.unit }, label: { + boxSizing: 'border-box', color: theme.palette.grey["500"], width: '40%' }, value: { + boxSizing: 'border-box', width: '60%', display: 'flex', alignItems: 'flex-start', textTransform: 'capitalize' }, + lowercaseValue: { + textTransform: 'lowercase' + }, link: { width: '60%', color: theme.palette.primary.main, textDecoration: 'none', - overflowWrap: 'break-word' + overflowWrap: 'break-word', + cursor: 'pointer' } }); interface DetailsAttributeDataProps { label: string; - value?: string | number; + classLabel?: string; + value?: React.ReactNode; + classValue?: string; + lowercaseValue?: boolean; link?: string; children?: React.ReactNode; + onValueClick?: () => void; } type DetailsAttributeProps = DetailsAttributeDataProps & WithStyles; -export const DetailsAttribute = withStyles(styles)(({ label, link, value, children, classes }: DetailsAttributeProps) => - - {label} - { link - ? {value} - : - {value} - {children} - } - +export const DetailsAttribute = withStyles(styles)( + ({ label, link, value, children, classes, classLabel, classValue, lowercaseValue, onValueClick }: DetailsAttributeProps) => + + {label} + { link + ? {value} + : + {value} + {children} + } + );