X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/8a85c509e4f2100082cfed6157d31c8651b861c9..1326c2ee2772e5e6191e49773bcb00840153e559:/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 0ad06bee..cb272dec 100644 --- a/src/store/run-process-panel/run-process-panel-reducer.ts +++ b/src/store/run-process-panel/run-process-panel-reducer.ts @@ -8,6 +8,7 @@ import { WorkflowResource, CommandInputParameter, getWorkflowInputs, parseWorkfl interface RunProcessPanel { processOwnerUuid: string; currentStep: number; + isStepChanged: boolean; workflows: WorkflowResource[]; searchWorkflows: WorkflowResource[]; selectedWorkflow: WorkflowResource | undefined; @@ -17,6 +18,7 @@ interface RunProcessPanel { const initialState: RunProcessPanel = { processOwnerUuid: '', currentStep: 0, + isStepChanged: false, workflows: [], selectedWorkflow: undefined, inputs: [], @@ -27,12 +29,20 @@ export const runProcessPanelReducer = (state = initialState, action: RunProcessP runProcessPanelActions.match(action, { SET_PROCESS_OWNER_UUID: processOwnerUuid => ({ ...state, processOwnerUuid }), SET_CURRENT_STEP: currentStep => ({ ...state, currentStep }), + SET_STEP_CHANGED: isStepChanged => ({ ...state, isStepChanged }), 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)) }), + SET_WORKFLOWS: workflows => ({ ...state, workflows, searchWorkflows: workflows }), + SEARCH_WORKFLOWS: term => { + const termRegex = new RegExp(term, 'i'); + return { + ...state, + searchWorkflows: state.workflows.filter(workflow => termRegex.test(workflow.name)), + }; + }, + RESET_RUN_PROCESS_PANEL: () => ({ ...initialState, processOwnerUuid: state.processOwnerUuid }), default: () => state }); \ No newline at end of file