//
// 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;
workflows: WorkflowResource[];
searchWorkflows: WorkflowResource[];
selectedWorkflow: WorkflowResource | undefined;
+ presets?: WorkflowResource[];
+ selectedPreset?: WorkflowResource;
inputs: CommandInputParameter[];
}
const initialState: RunProcessPanel = {
+ processPathname: '',
processOwnerUuid: '',
currentStep: 0,
+ isStepChanged: false,
workflows: [],
selectedWorkflow: undefined,
inputs: [],
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 }),
SET_SELECTED_WORKFLOW: selectedWorkflow => ({
...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');