// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 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 * as classnames from "classnames"; type CssRules = 'attribute' | 'label' | 'value' | 'link'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ attribute: { display: 'flex', alignItems: 'flex-start', marginBottom: theme.spacing.unit }, label: { color: theme.palette.grey["500"], width: '40%' }, value: { width: '60%', display: 'flex', alignItems: 'flex-start', textTransform: 'capitalize' }, link: { width: '60%', color: theme.palette.primary.main, textDecoration: 'none', overflowWrap: 'break-word' } }); interface DetailsAttributeDataProps { label: string; classLabel?: string; value?: string | number; classValue?: string; link?: string; children?: React.ReactNode; } type DetailsAttributeProps = DetailsAttributeDataProps & WithStyles; export const DetailsAttribute = withStyles(styles)( ({ label, link, value, children, classes, classLabel, classValue }: DetailsAttributeProps) => {label} { link ? {value} : {value} {children} } );