X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/8695e9d621330e691fbcc4bbc1d600d91bae2ac6..HEAD:/src/views/run-process-panel/inputs/enum-input.tsx
diff --git a/src/views/run-process-panel/inputs/enum-input.tsx b/src/views/run-process-panel/inputs/enum-input.tsx
index 3b0289e7..207a30ac 100644
--- a/src/views/run-process-panel/inputs/enum-input.tsx
+++ b/src/views/run-process-panel/inputs/enum-input.tsx
@@ -2,20 +2,40 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from 'react';
+import React from 'react';
import { Field } from 'redux-form';
+import { memoize } from 'lodash/fp';
+import { require } from 'validators/require';
import { Select, MenuItem } from '@material-ui/core';
-import { EnumCommandInputParameter, CommandInputEnumSchema } from '~/models/workflow';
+import { EnumCommandInputParameter, CommandInputEnumSchema, isRequiredInput, getEnumType } from 'models/workflow';
import { GenericInputProps, GenericInput } from './generic-input';
export interface EnumInputProps {
input: EnumCommandInputParameter;
}
+
+const getValidation = memoize(
+ (input: EnumCommandInputParameter) => ([
+ isRequiredInput(input)
+ ? require
+ : () => undefined,
+ ]));
+
+const emptyToNull = value => {
+ if (value === '') {
+ return null;
+ } else {
+ return value;
+ }
+};
+
export const EnumInput = ({ input }: EnumInputProps) =>
;
const EnumInputComponent = (props: GenericInputProps) =>
@@ -24,26 +44,26 @@ const EnumInputComponent = (props: GenericInputProps) =>
{...props} />;
const Input = (props: GenericInputProps) => {
- const type = props.commandInput.type as CommandInputEnumSchema;
+ const type = getEnumType(props.commandInput) as CommandInputEnumSchema;
return ;
};
/**
- * Values in workflow definition have an absolute form, for example:
- *
+ * Values in workflow definition have an absolute form, for example:
+ *
* ```#input_collector.cwl/enum_type/Pathway table```
- *
+ *
* We want a value that is in form accepted by backend.
* According to the example above, the correct value is:
- *
+ *
* ```Pathway table```
*/
const extractValue = (symbol: string) => symbol.split('/').pop();