react-floorplanner
Version:
react-floorplanner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.
39 lines (30 loc) • 837 B
JavaScript
import {
select,
unselectAll,
} from '../utils/layer-operations';
import {SELECT_AREA} from '../constants';
export default function (state, action) {
switch (action.type) {
case SELECT_AREA:
return selectArea(state, action.layerID, action.areaID);
default:
return state;
}
}
function selectArea(state, layerID, areaID) {
let scene = state.scene;
scene = scene.merge({
layers: scene.layers.map(unselectAll),
selectedLayer: layerID
});
scene = scene.updateIn(['layers', layerID], layer => layer.withMutations(layer => {
let area = layer.getIn(['areas', areaID]);
select(layer, 'areas', areaID);
area.vertices.forEach(vertexID => select(layer, 'vertices', vertexID));
})
);
return state.merge({
scene,
sceneHistory: state.sceneHistory.push(scene)
})
}