X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/519b431a41a9ab4815a1e4180ee78395b74a85de..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();