UNPKG

abb-core

Version:

Application Build Butler Core

69 lines (68 loc) 2.35 kB
import EABBRouterActionTypes from './EABB-router-action-types'; import { List } from 'immutable'; var ABBRouterActionCreator = /** @class */ (function () { function ABBRouterActionCreator() { } ABBRouterActionCreator.prototype.createRoutesReducer = function (initialState) { return function (state, action) { if (state === void 0) { state = initialState; } switch (action.type) { case EABBRouterActionTypes.ADD_ROUTE: return Object.assign({}, state, { routes: state.routes.insert(state.routes.size + action.offset, action.route) }); case EABBRouterActionTypes.DELETE_ROUTE: var routeIndex = state.routes.indexOf(action.route); return Object.assign({}, state, { routes: state.routes.delete(routeIndex) }); default: return state; } }; }; ABBRouterActionCreator.prototype.getReducersMapObject = function () { return { routesReducer: this.createRoutesReducer({ routes: List(), }) }; }; ABBRouterActionCreator.prototype.getStateToReducerMapObject = function (state) { return { routesReducer: { routes: state.routes } }; }; ABBRouterActionCreator.addRoutes = function (routes) { return function (dispatch) { routes.forEach(function (route) { dispatch(ABBRouterActionCreator.addRoute(route)); }); return Promise.resolve(); }; }; ABBRouterActionCreator.addRoute = function (route) { return { route: route, type: EABBRouterActionTypes.ADD_ROUTE, offset: -1 }; }; ABBRouterActionCreator.setNotFoundRoute = function (route) { return { route: route, type: EABBRouterActionTypes.ADD_ROUTE, offset: 0 }; }; ABBRouterActionCreator.deleteRoute = function (route) { return { route: route, type: EABBRouterActionTypes.DELETE_ROUTE }; }; return ABBRouterActionCreator; }()); export { ABBRouterActionCreator };