stitch-ui
Version:
82 lines (80 loc) • 2.13 kB
JavaScript
import { createReducer } from "redux-act";
import { combineReducers } from "redux";
import { makeUserReducer } from "../users/users";
import * as actions from "./actions";
import { User } from "../user";
export default combineReducers({
debugconsole: createReducer(
{
[actions.resetDebugConsole]: state => ({
...state,
selectedUser: null,
output: undefined,
loading: false
}),
[actions.loadUserActions.rcv]: (state, payload) => ({
...state,
selectedUser: new User(payload.payload)
}),
[actions.selectUser]: (state, payload) => ({
...state,
selectedUser: payload
}),
[actions.resetError]: state => ({
...state,
error: null,
adminError: null
}),
[actions.setError]: (state, payload) => ({
...state,
error: payload,
adminError: null
}),
[actions.clearSelectedUser]: state => ({
...state,
selectedUser: null
}),
[actions.clearOutput]: state => ({
...state,
output: undefined
}),
[actions.executePipelineActions.req]: state => ({
...state,
error: null,
adminError: null,
loading: true
}),
[actions.executePipelineActions.rcv]: (state, payload) => ({
...state,
output: payload.payload,
loading: false
}),
[actions.executePipelineActions.fail]: (state, payload) => {
const errorMessage = payload.error;
let adminError;
if (
payload.rawError &&
payload.rawError.json &&
payload.rawError.json.adminError
) {
adminError = payload.rawError.json.adminError;
}
return {
...state,
output: undefined,
loading: false,
error: errorMessage,
adminError
};
}
},
{
error: null,
adminError: null,
selectedUser: null,
output: undefined,
loading: false
}
),
users: makeUserReducer(actions.loadUsersActions, actions.resetUsersAction)
});