X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/835fca715fcf8da391049b46ae89f600569896f0..3c7e3cdc547ad5468421e1c049daa94b0d4b8bc0:/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 2cecc8ce..7b2b119b 100644 --- a/src/components/details-attribute/details-attribute.tsx +++ b/src/components/details-attribute/details-attribute.tsx @@ -2,19 +2,19 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { connect, DispatchProp } from 'react-redux'; import Typography from '@material-ui/core/Typography'; import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; import { Tooltip } from '@material-ui/core'; -import { CopyIcon } from '~/components/icon/icon'; -import * as CopyToClipboard from 'react-copy-to-clipboard'; -import { ArvadosTheme } from '~/common/custom-theme'; -import * as classnames from "classnames"; +import { CopyIcon } from 'components/icon/icon'; +import CopyToClipboard from 'react-copy-to-clipboard'; +import { ArvadosTheme } from 'common/custom-theme'; +import classnames from "classnames"; import { Link } from 'react-router-dom'; -import { RootState } from "~/store/store"; -import { FederationConfig, getNavUrl } from "~/routes/routes"; -import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions'; +import { RootState } from "store/store"; +import { FederationConfig, getNavUrl } from "routes/routes"; +import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions'; type CssRules = 'attribute' | 'label' | 'value' | 'lowercaseValue' | 'link' | 'copyIcon'; @@ -85,9 +85,8 @@ export const DetailsAttribute = connect(mapStateToProps)(withStyles(styles)( } render() { - const { uuidEnhancer, label, link, value, children, classes, classLabel, - classValue, lowercaseValue, onValueClick, linkToUuid, - localCluster, remoteHostsConfig, sessions, copyValue } = this.props; + const { uuidEnhancer, link, value, classes, linkToUuid, + localCluster, remoteHostsConfig, sessions } = this.props; let valueNode: React.ReactNode; if (linkToUuid) { @@ -104,23 +103,33 @@ export const DetailsAttribute = connect(mapStateToProps)(withStyles(styles)( valueNode = value; } - return - {label} - - {valueNode} - {children} - {(linkToUuid || copyValue) && - - this.onCopy("Copied")}> - - - - } - - ; + return ; } } )); + +interface DetailsAttributeComponentProps { + value: React.ReactNode; + onCopy?: (msg: string) => void; +} + +export const DetailsAttributeComponent = withStyles(styles)( + (props: DetailsAttributeDataProps & WithStyles & DetailsAttributeComponentProps) => + + {props.label} + + {props.value} + {props.children} + {(props.linkToUuid || props.copyValue) && props.onCopy && + + props.onCopy!("Copied")}> + + + + } + + ); +