X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b86917ee687fe693a4aee2608c2ceffca660a59e..f5127724c5ca39a59a08ba20f843e530b0650be9:/src/store/run-process-panel/run-process-panel-reducer.ts diff --git a/src/store/run-process-panel/run-process-panel-reducer.ts b/src/store/run-process-panel/run-process-panel-reducer.ts index f91039b3..0ad06bee 100644 --- a/src/store/run-process-panel/run-process-panel-reducer.ts +++ b/src/store/run-process-panel/run-process-panel-reducer.ts @@ -6,27 +6,33 @@ import { RunProcessPanelAction, runProcessPanelActions } from '~/store/run-proce import { WorkflowResource, CommandInputParameter, getWorkflowInputs, parseWorkflowDefinition } from '~/models/workflow'; interface RunProcessPanel { + processOwnerUuid: string; currentStep: number; workflows: WorkflowResource[]; + searchWorkflows: WorkflowResource[]; selectedWorkflow: WorkflowResource | undefined; inputs: CommandInputParameter[]; } const initialState: RunProcessPanel = { + processOwnerUuid: '', currentStep: 0, workflows: [], selectedWorkflow: undefined, inputs: [], + searchWorkflows: [], }; export const runProcessPanelReducer = (state = initialState, action: RunProcessPanelAction): RunProcessPanel => runProcessPanelActions.match(action, { + SET_PROCESS_OWNER_UUID: processOwnerUuid => ({ ...state, processOwnerUuid }), SET_CURRENT_STEP: currentStep => ({ ...state, currentStep }), - SET_WORKFLOWS: workflows => ({ ...state, workflows }), SET_SELECTED_WORKFLOW: selectedWorkflow => ({ ...state, selectedWorkflow, inputs: getWorkflowInputs(parseWorkflowDefinition(selectedWorkflow)) || [], }), + SET_WORKFLOWS: workflows => ({ ...state, workflows, searchWorkflows: workflows }), + SEARCH_WORKFLOWS: term => ({ ...state, searchWorkflows: state.workflows.filter(workflow => workflow.name.includes(term)) }), default: () => state }); \ No newline at end of file