X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/fc5181400a6e3c31e2fb975b28878372e420f47d..HEAD:/src/views/run-process-panel/inputs/string-array-input.tsx
diff --git a/src/views/run-process-panel/inputs/string-array-input.tsx b/src/views/run-process-panel/inputs/string-array-input.tsx
index 7454e2ad..8955009a 100644
--- a/src/views/run-process-panel/inputs/string-array-input.tsx
+++ b/src/views/run-process-panel/inputs/string-array-input.tsx
@@ -2,12 +2,15 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from 'react';
-import { isRequiredInput, StringArrayCommandInputParameter } from '~/models/workflow';
+import React from 'react';
+import { isRequiredInput, StringArrayCommandInputParameter } from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
-import { GenericInputProps, GenericInput } from '~/views/run-process-panel/inputs/generic-input';
-import { ChipsInput } from '../../../components/chips-input/chips-input';
+import { ERROR_MESSAGE } from 'validators/require';
+import { GenericInputProps, GenericInput } from 'views/run-process-panel/inputs/generic-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;
@@ -17,19 +20,47 @@ export const StringArrayInput = ({ input }: StringArrayInputProps) =>
name={input.id}
commandInput={input}
component={StringArrayInputComponent}
- validate={[
- isRequiredInput(input)
- ? (value: string[]) => value.length > 0 ? undefined : ERROR_MESSAGE
- : () => undefined,
- ]} />;
+ validate={validationSelector(input)} />;
+
+
+const validationSelector = createSelector(
+ isRequiredInput,
+ isRequired => isRequired
+ ? [required]
+ : undefined
+);
+
+const required = (value: string[] = []) =>
+ value && value.length > 0
+ ? undefined
+ : ERROR_MESSAGE;
const StringArrayInputComponent = (props: GenericInputProps) =>
;
-const Input = (props: GenericInputProps) =>
- v} />;
+class InputComponent extends React.PureComponent{
+ render() {
+ const { commandInput, input, meta } = this.props;
+ return ;
+ }
+
+ handleChange = (values: {}[]) => {
+ const { input, meta } = this.props;
+ if (!meta.touched) {
+ input.onBlur(values);
+ }
+ input.onChange(values);
+ }
+}