lml-main
Version:
This is now a mono repository published into many standalone packages.
40 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Actions = require("../../jobs/actions");
const lodash_1 = require("lodash");
const initialJobsPaginationState = {
canPageForwards: false,
canPageBack: false,
lastKeys: [],
pagePointer: 0,
};
exports.jobPaginationReducer = (state = initialJobsPaginationState, action) => {
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;
}
}
};
const setJobsPagination = (state, action) => (Object.assign({}, state, { canPageForwards: action.canPageForwards, canPageBack: action.canPageBack, lastKeys: [...action.lastKeys] }));
const pageForwards = (state, action) => {
const pagePointer = state.pagePointer + 1;
return Object.assign({}, state, { pagePointer });
};
const pageBackwards = (state, action) => {
const pagePointer = state.pagePointer > 0 ? state.pagePointer - 1 : 0;
return Object.assign({}, state, { pagePointer });
};
const resetPagination = (state, action) => lodash_1.cloneDeep(initialJobsPaginationState);
//# sourceMappingURL=pagination.js.map