From 2759843b203ee1b3db4da0d2326319e072c3bf33 Mon Sep 17 00:00:00 2001 From: Michal Klobukowski Date: Thu, 29 Nov 2018 14:31:13 +0100 Subject: [PATCH] Extract FloatInput's getValidation function Feature #14524 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- src/views/run-process-panel/inputs/float-input.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/views/run-process-panel/inputs/float-input.tsx b/src/views/run-process-panel/inputs/float-input.tsx index fae8f605..a5905dc5 100644 --- a/src/views/run-process-panel/inputs/float-input.tsx +++ b/src/views/run-process-panel/inputs/float-input.tsx @@ -3,6 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; +import { memoize } from 'lodash/fp'; import { FloatCommandInputParameter, isRequiredInput } from '~/models/workflow'; import { Field } from 'redux-form'; import { isNumber } from '~/validators/is-number'; @@ -18,13 +19,17 @@ export const FloatInput = ({ input }: FloatInputProps) => component={Input} parse={parseFloat} format={format} - validate={[ - isRequiredInput(input) - ? isNumber - : () => undefined,]} />; + validate={getValidation(input)} />; const format = (value: any) => isNaN(value) ? '' : JSON.stringify(value); +const getValidation = memoize( + (input: FloatCommandInputParameter) => ([ + isRequiredInput(input) + ? isNumber + : () => undefined,]) +); + const Input = (props: GenericInputProps) =>