UNPKG

kitchen-simulator

Version:

It is a kitchen simulator (self-contained micro-frontend).

63 lines (62 loc) 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = _default; var _constants = require("../constants"); var _export = require("../class/export"); var _export2 = require("../utils/export"); var _convertUnitsLite = require("../utils/convert-units-lite"); function _default(state, action) { state = state.merge({ sceneHistory: _export2.history.historyPush(state.sceneHistory, state.scene) }); switch (action.type) { case _constants.UPDATE_3D_CEIL_HEIGHT_UNIT: { var _state = state, scene = _state.scene; var selectedLayer = scene.selectedLayer; var layer = scene.layers.get(selectedLayer); var newLayer = layer.merge({ unit: action.value }); state = state.mergeIn(['scene', 'layers', selectedLayer], newLayer); return state; } case _constants.UPDATE_3D_CEIL_HEIGHT: { var _state2 = state, _scene = _state2.scene; var _selectedLayer = _scene.selectedLayer; var _layer = _scene.layers.get(_selectedLayer); var _newLayer = _layer.merge({ ceilHeight: action.value }); state = state.mergeIn(['scene', 'layers', _selectedLayer], _newLayer); var items = state.scene.layers.get(state.scene.selectedLayer).items; var newItems = items.map(function (item) { if (item.type.includes('Light')) { var height = item.properties.getIn(['height', '_length']); var heightUnit = item.properties.getIn(['height', '_unit']); var newAltitude = action.value - (0, _convertUnitsLite.convert)(height).from(heightUnit).to('in'); item = item.setIn(['properties', 'altitude', '_length'], (0, _convertUnitsLite.convert)(newAltitude).from('in').to(_layer.unit)); } return item; }); state = state.mergeIn(['scene', 'layers', _selectedLayer, 'items'], newItems); return state; } case _constants.SELECT_TOOL_3D_VIEW: state = _export.Project.rollback(state).updatedState; state = _export.Project.setMode(state, _constants.MODE_3D_VIEW).updatedState; return state; case _constants.SELECT_TOOL_3D_FIRST_PERSON: state = _export.Project.rollback(state).updatedState; state = _export.Project.setMode(state, _constants.MODE_3D_FIRST_PERSON).updatedState; return state; default: return state; } } module.exports = exports.default;