fabric8-planner
Version:
A planner front-end for Fabric8.
93 lines • 3.73 kB
JavaScript
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
import { cloneDeep } from 'lodash';
import * as IterationActions from '.././actions/iteration.actions';
import { initialState, initialUIState } from './../states/iteration.state';
export var iterationReducer = function (state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case IterationActions.GET_SUCCESS:
return action.payload;
case IterationActions.ADD_SUCCESS:
var parent_1 = action.payload.parent;
var newIterationId = action.payload.iteration.id;
if (parent_1) {
state[parent_1.id].hasChildren = true;
}
state[newIterationId] = action.payload.iteration;
return __assign({}, state);
case IterationActions.UPDATE_SUCCESS:
var updatedIterationid = action.payload.id;
if (state[updatedIterationid]) {
action.payload.selected = state[updatedIterationid].selected;
}
state[updatedIterationid] = action.payload;
return __assign({}, state);
case IterationActions.SELECT:
if (state[action.payload]) {
for (var id in state) {
state[id].selected = id === action.payload;
state[id].showChildren = false;
}
var pId = state[action.payload].parentId;
// Backend sends the pId for root iteration '00000000-0000-0000-0000-000000000000'
// removing pId !== '00000000-0000-0000-0000-000000000000' causes the while loop to go in
// infinite loop
while (pId && pId !== '00000000-0000-0000-0000-000000000000') {
var pIndex = pId;
if (state[pId]) {
state[pId].showChildren = true;
pId = state[pIndex].parentId;
}
}
}
else {
for (var i in state) {
state[i].selected = false;
state[i].showChildren = false;
}
}
return __assign({}, state); // This is important for change detection
case IterationActions.GET_ERROR:
return state;
case IterationActions.ADD_ERROR:
return state;
case IterationActions.UPDATE_ERROR:
return state;
default:
return state;
}
};
export var iterationUiReducer = function (s, action) {
if (s === void 0) { s = initialUIState; }
var state = cloneDeep(s);
switch (action.type) {
case IterationActions.UPDATE_SUCCESS:
case IterationActions.ADD_SUCCESS:
state.error = '';
state.modalLoading = false;
return state;
case IterationActions.UPDATE:
case IterationActions.ADD:
state.error = '';
state.modalLoading = true;
return state;
case IterationActions.ADD_ERROR:
state.modalLoading = false;
state.error = 'Some error has occured on adding iteration';
return state;
case IterationActions.UPDATE_ERROR:
state.modalLoading = false;
state.error = 'Some error has occured on updating iteration';
return state;
default:
return state;
}
};
//# sourceMappingURL=iteration-reducer.js.map