lml-main
Version:
This is now a mono repository published into many standalone packages.
44 lines • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var Actions = require("../actions");
var lodash_1 = require("lodash");
var initialJobsPaginationState = {
canPageForwards: false,
canPageBack: false,
lastKeys: [],
pagePointer: 0,
};
exports.jobPaginationReducer = function (state, action) {
if (state === void 0) { state = initialJobsPaginationState; }
switch (action.type) {
case Actions.SET_JOBS_PAGINATION: {
return setJobsPagination(state, action);
}
case Actions.PAGE_FORWARDS: {
return pageForwards(state, action);
}
case Actions.PAGE_BACKWARDS: {
return pageBackwards(state, action);
}
case Actions.RESET_PAGINATION: {
return resetPagination(state, action);
}
default: {
return state;
}
}
};
var setJobsPagination = function (state, action) { return (tslib_1.__assign({}, state, { canPageForwards: action.canPageForwards, canPageBack: action.canPageBack, lastKeys: action.lastKeys.slice() })); };
var pageForwards = function (state, action) {
var pagePointer = state.pagePointer + 1;
return tslib_1.__assign({}, state, { pagePointer: pagePointer });
};
var pageBackwards = function (state, action) {
var pagePointer = state.pagePointer > 0 ? state.pagePointer - 1 : 0;
return tslib_1.__assign({}, state, { pagePointer: pagePointer });
};
var resetPagination = function (state, action) {
return lodash_1.cloneDeep(initialJobsPaginationState);
};
//# sourceMappingURL=pagination.js.map