Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / store / run-process-panel / run-process-panel-reducer.ts
index 609816a2e6fa9bfa5b48881844c1ae0d4905313d..fe69f952a1d1f8da373b905084b509369a22cda4 100644 (file)
@@ -2,10 +2,11 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { RunProcessPanelAction, runProcessPanelActions } from '~/store/run-process-panel/run-process-panel-actions';
-import { WorkflowResource, CommandInputParameter, getWorkflowInputs, parseWorkflowDefinition } from '~/models/workflow';
+import { RunProcessPanelAction, runProcessPanelActions } from 'store/run-process-panel/run-process-panel-actions';
+import { WorkflowResource, CommandInputParameter, getWorkflowInputs, parseWorkflowDefinition } from 'models/workflow';
 
 interface RunProcessPanel {
+    processPathname: string;
     processOwnerUuid: string;
     currentStep: number;
     isStepChanged: boolean;
@@ -13,10 +14,12 @@ interface RunProcessPanel {
     searchWorkflows: WorkflowResource[];
     selectedWorkflow: WorkflowResource | undefined;
     presets?: WorkflowResource[];
+    selectedPreset?: WorkflowResource;
     inputs: CommandInputParameter[];
 }
 
 const initialState: RunProcessPanel = {
+    processPathname: '',
     processOwnerUuid: '',
     currentStep: 0,
     isStepChanged: false,
@@ -28,6 +31,7 @@ const initialState: RunProcessPanel = {
 
 export const runProcessPanelReducer = (state = initialState, action: RunProcessPanelAction): RunProcessPanel =>
     runProcessPanelActions.match(action, {
+        SET_PROCESS_PATHNAME: processPathname => ({ ...state, processPathname }),
         SET_PROCESS_OWNER_UUID: processOwnerUuid => ({ ...state, processOwnerUuid }),
         SET_CURRENT_STEP: currentStep => ({ ...state, currentStep }),
         SET_STEP_CHANGED: isStepChanged => ({ ...state, isStepChanged }),
@@ -35,12 +39,17 @@ export const runProcessPanelReducer = (state = initialState, action: RunProcessP
             ...state,
             selectedWorkflow,
             presets: undefined,
+            selectedPreset: selectedWorkflow,
             inputs: getWorkflowInputs(parseWorkflowDefinition(selectedWorkflow)) || [],
         }),
         SET_WORKFLOW_PRESETS: presets => ({
             ...state,
             presets,
         }),
+        SELECT_WORKFLOW_PRESET: selectedPreset => ({
+            ...state,
+            selectedPreset,
+        }),
         SET_WORKFLOWS: workflows => ({ ...state, workflows, searchWorkflows: workflows }),
         SEARCH_WORKFLOWS: term => {
             const termRegex = new RegExp(term, 'i');