17119: Merge branch 'master' into 17119-support-filter-groups
[arvados-workbench2.git] / src / views / run-process-panel / inputs / string-array-input.tsx
index 3b29d1a8cf9fa48c822b3b1019b5e9f56cc5e877..39dbe0afdaa67bcd083a437ad3c0cd5f6bf6f7ef 100644 (file)
@@ -10,6 +10,7 @@ import { GenericInputProps, GenericInput } from '~/views/run-process-panel/input
 import { ChipsInput } from '~/components/chips-input/chips-input';
 import { identity } from 'lodash';
 import { createSelector } from 'reselect';
+import { Input } from '@material-ui/core';
 
 export interface StringArrayInputProps {
     input: StringArrayCommandInputParameter;
@@ -29,22 +30,30 @@ const validationSelector = createSelector(
         : undefined
 );
 
-const required = (value: string[]) =>
+const required = (value: string[] = []) =>
     value.length > 0
         ? undefined
         : ERROR_MESSAGE;
 
 const StringArrayInputComponent = (props: GenericInputProps) =>
     <GenericInput
-        component={Input}
+        component={InputComponent}
         {...props} />;
 
-class Input extends React.PureComponent<GenericInputProps>{
+class InputComponent extends React.PureComponent<GenericInputProps>{
     render() {
+        const { commandInput, input, meta } = this.props;
         return <ChipsInput
-            values={this.props.input.value}
+            deletable={!commandInput.disabled}
+            orderable={!commandInput.disabled}
+            disabled={commandInput.disabled}
+            values={input.value}
             onChange={this.handleChange}
-            createNewValue={identity} />;
+            createNewValue={identity}
+            inputComponent={Input}
+            inputProps={{
+                error: meta.error
+            }} />;
     }
 
     handleChange = (values: {}[]) => {