UNPKG

lml-main

Version:

This is now a mono repository published into many standalone packages.

46 lines 1.86 kB
"use strict"; 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