fune/devtools/client/inspector/grids/reducers/grids.js

51 lines
1.1 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const {
UPDATE_GRID_COLOR,
UPDATE_GRID_HIGHLIGHTED,
UPDATE_GRIDS,
} = require("../actions/index");
const INITIAL_GRIDS = [];
let reducers = {
[UPDATE_GRID_COLOR](grids, { nodeFront, color }) {
let newGrids = grids.map(g => {
if (g.nodeFront == nodeFront) {
g = Object.assign({}, g, { color });
}
return g;
});
return newGrids;
},
[UPDATE_GRID_HIGHLIGHTED](grids, { nodeFront, highlighted }) {
return grids.map(g => {
let isUpdatedNode = g.nodeFront === nodeFront;
return Object.assign({}, g, {
highlighted: isUpdatedNode && highlighted
});
});
},
[UPDATE_GRIDS](_, { grids }) {
return grids;
},
};
module.exports = function (grids = INITIAL_GRIDS, action) {
let reducer = reducers[action.type];
if (!reducer) {
return grids;
}
return reducer(grids, action);
};