lml-main
Version:
This is now a mono repository published into many standalone packages.
46 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var Actions = require("../actions");
var initialState = {
byId: {},
byJobNumber: {},
lastDataUpdate: null,
};
exports.jobDataReducer = function (state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case Actions.SET_JOB_BY_ID: {
return setJobById(state, action);
}
case Actions.SET_JOBS_BY_ID_BATCH: {
return setJobsByIdBatch(state, action);
}
default: {
return state;
}
}
};
var setJobById = function (state, action) {
return (tslib_1.__assign({}, state, { byId: tslib_1.__assign({}, state.byId, (_a = {}, _a[action.job.refId] = action.job, _a)),
// also set the job number for quick look up by job number
byJobNumber: tslib_1.__assign({}, state.byJobNumber, (_b = {}, _b[action.job.jobNumber] = action.job.refId, _b)) }));
var _a, _b;
};
// const getUpdatedJobs = (prevJobs: I<JobModel>, nextJobs: I<JobModel>) => {
// const updatedJobs: I<JobModel> = {}
// for (const id in Object.keys(nextJobs)) {
// const prevJob = prevJobs[id]
// const nextJob = nextJobs[id]
// updatedJobs[id] = !prevJob || prevJob.updatedAt !== nextJob.updatedAt
// ? nextJob
// : prevJob
// }
// return updatedJobs
// }
var setJobsByIdBatch = function (state, action) { return (tslib_1.__assign({}, state, { byId: tslib_1.__assign({}, state.byId, action.jobs), byJobNumber: tslib_1.__assign({}, state.byJobNumber, Object.keys(action.jobs)
.reduce(function (acc, curr) {
acc[action.jobs[curr].jobNumber] = action.jobs[curr].refId;
return acc;
}, {})), lastDataUpdate: Date.now() })); };
//# sourceMappingURL=data.js.map