UNPKG

stitch-ui

Version:

101 lines (99 loc) 3.02 kB
import { createReducer } from "redux-act"; import { OrderedMap } from "immutable"; import { NamedPipeline } from "../models"; import * as actions from "./actions"; export default createReducer( { [actions.setEditing]: (state, payload) => ({ ...state, editing: payload ? payload.value : payload, savePipelineError: null }), [actions.discardChanges]: state => ({ ...state, editing: state.editing.name ? state.namedPipelinesClean.get(state.editing.name) : actions.defaultNamedPipeline, savePipelineError: null }), [actions.loadPipelinesActions.req]: state => ({ ...state, error: null, savePipelineError: null }), [actions.loadPipelinesActions.rcv]: (state, payload) => ({ ...state, namedPipelines: new OrderedMap(payload.payload).map(v => ({ error: null, value: v })), namedPipelinesClean: new OrderedMap(payload.payload).map(v => NamedPipeline.fromRaw(v) ) }), [actions.loadPipelinesActions.fail]: (state, { error }) => ({ ...state, namedPipelines: {}, error }), [actions.updatePipelineActions.req]: state => ({ ...state, savingPipeline: true }), [actions.updatePipelineActions.rcv]: state => ({ ...state, savingPipeline: false }), [actions.updatePipelineActions.fail]: (state, { error }) => ({ ...state, savePipelineError: { submit: error }, savingPipeline: false }), [actions.setSavePipelineErrorAction]: (state, payload) => ({ ...state, savePipelineError: payload }), [actions.updateParameter]: (state, { index, parameter }) => ({ ...state, editing: state.editing .setIn(["parameters", index], parameter) .set("dirty", true) }), [actions.removeParameter]: (state, { index }) => ({ ...state, editing: state.editing.removeIn(["parameters", index]).set("dirty", true) }), [actions.addParameter]: state => ({ ...state, editing: state.editing .updateIn(["parameters"], p => p.push({ name: "", required: false })) .set("dirty", true) }), [actions.setPrivate]: (state, { isPrivate }) => ({ ...state, editing: state.editing.set("private", isPrivate).set("dirty", true) }), [actions.setSkipRules]: (state, { skipRules }) => ({ ...state, editing: state.editing.set("skipRules", skipRules).set("dirty", true) }), [actions.updateCanEvalInput]: (state, { value }) => ({ ...state, editing: state.editing .setIn(["canEvaluate", "input"], value) .set("dirty", true) }), [actions.setCanEval]: (state, { canEval }) => ({ ...state, editing: state.editing.set("canEvaluate", canEval) }) }, { error: null, savePipelineError: null, editing: null, savingPipeline: false, namedPipelines: new OrderedMap(), namedPipelinesClean: new OrderedMap() } );