From: Michal Klobukowski Date: Thu, 29 Nov 2018 13:35:47 +0000 (+0100) Subject: Extract IntInput's getValidation function X-Git-Tag: 1.3.0~1^2~2 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/3e2e65e95cf4070e4742ee96ea16cb6c5e841b7a Extract IntInput's getValidation function Feature #14524 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- diff --git a/src/views/run-process-panel/inputs/int-input.tsx b/src/views/run-process-panel/inputs/int-input.tsx index cac8a27c..32ebeb75 100644 --- a/src/views/run-process-panel/inputs/int-input.tsx +++ b/src/views/run-process-panel/inputs/int-input.tsx @@ -3,6 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; +import { memoize } from 'lodash/fp'; import { IntCommandInputParameter, isRequiredInput } from '~/models/workflow'; import { Field } from 'redux-form'; import { isInteger } from '~/validators/is-integer'; @@ -19,16 +20,19 @@ export const IntInput = ({ input }: IntInputProps) => component={InputComponent} parse={parse} format={format} - validate={[ - isRequiredInput(input) - ? isInteger - : () => undefined, - ]} />; + validate={getValidation(input)} />; const parse = (value: any) => parseInt(value, 10); const format = (value: any) => isNaN(value) ? '' : JSON.stringify(value); +const getValidation = memoize( + (input: IntCommandInputParameter) => ([ + isRequiredInput(input) + ? isInteger + : () => undefined, + ])); + const InputComponent = (props: GenericInputProps) =>