// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { reduxForm, InjectedFormProps } from 'redux-form'; import { WorkflowResource, CommandInputParameter, CWLType, IntCommandInputParameter, BooleanCommandInputParameter, FileCommandInputParameter } from '~/models/workflow'; import { IntInput } from '~/views/run-process-panel/inputs/int-input'; import { StringInput } from '~/views/run-process-panel/inputs/string-input'; import { StringCommandInputParameter, FloatCommandInputParameter, File } from '../../models/workflow'; import { FloatInput } from '~/views/run-process-panel/inputs/float-input'; import { BooleanInput } from './inputs/boolean-input'; import { FileInput } from './inputs/file-input'; import { connect } from 'react-redux'; import { compose } from 'redux'; const RUN_PROCESS_INPUTS_FORM = 'runProcessInputsForm'; export interface RunProcessInputFormProps { inputs: CommandInputParameter[]; } export const RunProcessInputsForm = compose( connect((_: any, props: RunProcessInputFormProps) => ({ initialValues: props.inputs.reduce( (values, input) => ({ ...values, [input.id]: input.default }), {}), })), reduxForm({ form: RUN_PROCESS_INPUTS_FORM }))((props: InjectedFormProps & RunProcessInputFormProps) =>
{props.inputs.map(input => { switch (true) { case input.type === CWLType.BOOLEAN: return ; case input.type === CWLType.INT: case input.type === CWLType.LONG: return ; case input.type === CWLType.FLOAT: case input.type === CWLType.DOUBLE: return ; case input.type === CWLType.STRING: return ; case input.type === CWLType.FILE: return ; default: return null; } })} );