react-planner
Version:
react-planner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.
94 lines (66 loc) • 3.31 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Content;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _viewer2d = require('./viewer2d/viewer2d');
var _viewer2d2 = _interopRequireDefault(_viewer2d);
var _viewer3d = require('./viewer3d/viewer3d');
var _viewer3d2 = _interopRequireDefault(_viewer3d);
var _viewer3dFirstPerson = require('./viewer3d/viewer3d-first-person');
var _viewer3dFirstPerson2 = _interopRequireDefault(_viewer3dFirstPerson);
var _catalogList = require('./catalog-view/catalog-list');
var _catalogList2 = _interopRequireDefault(_catalogList);
var _projectConfigurator = require('./configurator/project-configurator');
var _projectConfigurator2 = _interopRequireDefault(_projectConfigurator);
var _constants = require('../constants');
var constants = _interopRequireWildcard(_constants);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function Content(_ref) {
var width = _ref.width,
height = _ref.height,
state = _ref.state,
customContents = _ref.customContents;
var mode = state.get('mode');
switch (mode) {
case constants.MODE_3D_VIEW:
return _react2.default.createElement(_viewer3d2.default, { state: state, width: width, height: height });
case constants.MODE_3D_FIRST_PERSON:
return _react2.default.createElement(_viewer3dFirstPerson2.default, { state: state, width: width, height: height });
case constants.MODE_VIEWING_CATALOG:
return _react2.default.createElement(_catalogList2.default, { state: state, width: width, height: height });
case constants.MODE_IDLE:
case constants.MODE_2D_ZOOM_IN:
case constants.MODE_2D_ZOOM_OUT:
case constants.MODE_2D_PAN:
case constants.MODE_WAITING_DRAWING_LINE:
case constants.MODE_DRAGGING_LINE:
case constants.MODE_DRAGGING_VERTEX:
case constants.MODE_DRAGGING_ITEM:
case constants.MODE_DRAWING_LINE:
case constants.MODE_DRAWING_HOLE:
case constants.MODE_DRAWING_ITEM:
case constants.MODE_DRAGGING_HOLE:
case constants.MODE_ROTATING_ITEM:
return _react2.default.createElement(_viewer2d2.default, { state: state, width: width, height: height });
case constants.MODE_CONFIGURING_PROJECT:
return _react2.default.createElement(_projectConfigurator2.default, { width: width, height: height, state: state });
default:
if (customContents.hasOwnProperty(mode)) {
var CustomContent = customContents[mode];
return _react2.default.createElement(CustomContent, { width: width, height: height, state: state });
} else {
throw new Error('Mode ' + mode + ' doesn\'t have a mapped content');
}
}
}
Content.propTypes = {
state: _propTypes2.default.object.isRequired,
width: _propTypes2.default.number.isRequired,
height: _propTypes2.default.number.isRequired
};