// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import React from 'react'; import { StringArrayCommandInputParameter } from 'models/workflow'; import { Field, GenericField } from 'redux-form'; import { GenericInputProps } from 'views/run-process-panel/inputs/generic-input'; import { ChipsInput } from 'components/chips-input/chips-input'; import { identity } from 'lodash'; import { withStyles, WithStyles, FormGroup, Input, InputLabel, FormControl, FormHelperText } from '@material-ui/core'; import classnames from "classnames"; import { ArvadosTheme } from 'common/custom-theme'; export interface GroupArrayDataProps { hasPartialGroupInput?: boolean; setPartialGroupInput?: (value: boolean) => void; } interface GroupArrayFieldProps { commandInput: StringArrayCommandInputParameter; } const GroupArrayField = Field as new () => GenericField; export interface GroupArrayInputProps { name: string; input: StringArrayCommandInputParameter; required: boolean; } type CssRules = 'chips' | 'partialInputHelper' | 'partialInputHelperVisible'; const styles = (theme: ArvadosTheme) => ({ chips: { marginTop: "16px", }, partialInputHelper: { textAlign: 'right' as 'right', visibility: 'hidden' as 'hidden', color: theme.palette.error.dark, }, partialInputHelperVisible: { visibility: 'visible' as 'visible', } }); export const GroupArrayInput = ({name, input, setPartialGroupInput, hasPartialGroupInput}: GroupArrayInputProps & GroupArrayDataProps) => { console.log(hasPartialGroupInput); return ; } const GroupArrayInputComponent = (props: GenericInputProps & GroupArrayDataProps) => { return 0}>{props.commandInput.id} ; }; const StyledInputComponent = withStyles(styles)( class InputComponent extends React.PureComponent & GroupArrayDataProps>{ render() { const { classes } = this.props; const { commandInput, input, meta, hasPartialGroupInput } = this.props; return <> Press enter to complete group name ; } handleChange = (values: {}[]) => { const { input, meta } = this.props; if (!meta.touched) { input.onBlur(values); } input.onChange(values); } } );