1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { Dispatch } from 'redux';
6 import { unionize, ofType, UnionOf } from "~/common/unionize";
7 import { ServiceRepository } from "~/services/services";
8 import { RootState } from '~/store/store';
9 import { WorkflowResource } from '~/models/workflow';
11 export const runProcessPanelActions = unionize({
12 SET_CURRENT_STEP: ofType<number>(),
13 SET_WORKFLOWS: ofType<WorkflowResource[]>(),
14 SET_SELECTED_WORKFLOW: ofType<WorkflowResource>(),
15 SEARCH_WORKFLOWS: ofType<string>()
18 export interface RunProcessSecondStepDataFormProps {
23 export const RUN_PROCESS_SECOND_STEP_FORM_NAME = 'runProcessSecondStepFormName';
25 export type RunProcessPanelAction = UnionOf<typeof runProcessPanelActions>;
27 export const loadRunProcessPanel = () =>
28 async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
30 const response = await services.workflowService.list();
31 dispatch(runProcessPanelActions.SET_WORKFLOWS(response.items));
37 export const setWorkflow = (workflow: WorkflowResource) =>
38 async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
39 dispatch(runProcessPanelActions.SET_SELECTED_WORKFLOW(workflow));
42 export const goToStep = (step: number) => runProcessPanelActions.SET_CURRENT_STEP(step);
44 export const searchWorkflows = (term: string) => runProcessPanelActions.SEARCH_WORKFLOWS(term);