X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/ec9331a8435c9844efe3ba018f6c0d0c3f96d573..d416c9aa7b70da4f8998792a42616b991d882f26:/src/views/run-process-panel/run-process-second-step.tsx diff --git a/src/views/run-process-panel/run-process-second-step.tsx b/src/views/run-process-panel/run-process-second-step.tsx index 0b856382..ca30ce5f 100644 --- a/src/views/run-process-panel/run-process-second-step.tsx +++ b/src/views/run-process-panel/run-process-second-step.tsx @@ -2,44 +2,70 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { Grid, Button } from '@material-ui/core'; import { RunProcessBasicForm, RUN_PROCESS_BASIC_FORM } from './run-process-basic-form'; -import { RunProcessInputsForm } from '~/views/run-process-panel/run-process-inputs-form'; -import { CommandInputParameter } from '~/models/workflow'; +import { RunProcessInputsForm } from 'views/run-process-panel/run-process-inputs-form'; +import { CommandInputParameter, WorkflowResource } from 'models/workflow'; import { connect } from 'react-redux'; -import { RootState } from '~/store/store'; +import { RootState } from 'store/store'; import { isValid } from 'redux-form'; import { RUN_PROCESS_INPUTS_FORM } from './run-process-inputs-form'; -import { RunProcessAdvancedForm } from './run-process-advanced-form'; -import { createSelector, createStructuredSelector } from 'reselect'; +import { RunProcessAdvancedForm, RUN_PROCESS_ADVANCED_FORM } from './run-process-advanced-form'; +import { createStructuredSelector } from 'reselect'; +import { WorkflowPresetSelect } from 'views/run-process-panel/workflow-preset-select'; +import { selectPreset } from 'store/run-process-panel/run-process-panel-actions'; export interface RunProcessSecondStepFormDataProps { inputs: CommandInputParameter[]; + workflow?: WorkflowResource; + presets?: WorkflowResource[]; + selectedPreset?: WorkflowResource; valid: boolean; } export interface RunProcessSecondStepFormActionProps { goBack: () => void; runProcess: () => void; + onPresetChange: (preset: WorkflowResource) => void; } +const selectedWorkflowSelector = (state: RootState) => + state.runProcessPanel.selectedWorkflow; + +const presetsSelector = (state: RootState) => + state.runProcessPanel.presets; + +const selectedPresetSelector = (state: RootState) => + state.runProcessPanel.selectedPreset; + const inputsSelector = (state: RootState) => state.runProcessPanel.inputs; const validSelector = (state: RootState) => - isValid(RUN_PROCESS_BASIC_FORM)(state) && isValid(RUN_PROCESS_INPUTS_FORM)(state); + isValid(RUN_PROCESS_BASIC_FORM)(state) && isValid(RUN_PROCESS_INPUTS_FORM)(state) && isValid(RUN_PROCESS_ADVANCED_FORM)(state); const mapStateToProps = createStructuredSelector({ inputs: inputsSelector, valid: validSelector, + workflow: selectedWorkflowSelector, + presets: presetsSelector, + selectedPreset: selectedPresetSelector, }); export type RunProcessSecondStepFormProps = RunProcessSecondStepFormDataProps & RunProcessSecondStepFormActionProps; -export const RunProcessSecondStepForm = connect(mapStateToProps)( - ({ inputs, valid, goBack, runProcess }: RunProcessSecondStepFormProps) => - +export const RunProcessSecondStepForm = connect(mapStateToProps, { onPresetChange: selectPreset })( + ({ inputs, workflow, selectedPreset, presets, onPresetChange, valid, goBack, runProcess }: RunProcessSecondStepFormProps) => + + {/* + + {workflow && selectedPreset && presets && + < WorkflowPresetSelect + {...{ workflow, selectedPreset, presets, onChange: onPresetChange }} /> + } + + */}