// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { StyleRulesCallback, WithStyles, withStyles, CardContent, Tab, Tabs, Paper } from '@material-ui/core'; import { ArvadosTheme } from '~/common/custom-theme'; import { WorkflowIcon } from '~/components/icon/icon'; import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view'; import { WorkflowResource, parseWorkflowDefinition, getWorkflowInputs, stringifyInputType } from '~/models/workflow'; import { DetailsAttribute } from '~/components/details-attribute/details-attribute'; export type CssRules = 'root' | 'tab'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ root: { height: '100%', }, tab: { minWidth: '50%' } }); interface WorkflowDetailsCardDataProps { workflow?: WorkflowResource; } type WorkflowDetailsCardProps = WorkflowDetailsCardDataProps & WithStyles; export const WorkflowDetailsCard = withStyles(styles)( class extends React.Component { state = { value: 0, }; handleChange = (event: React.MouseEvent, value: number) => { this.setState({ value }); } render() { const { classes, workflow } = this.props; const { value } = this.state; return {value === 0 && {workflow ? workflow.description : } } {value === 1 && {workflow && this.inputs ? this.inputs.map(input => ) : } } ; } get inputs() { if (this.props.workflow) { const definition = parseWorkflowDefinition(this.props.workflow); if (definition) { return getWorkflowInputs(definition); } } return; } });