UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

150 lines (117 loc) 4.17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactDnd = require("react-dnd"); var _ItemTypes = _interopRequireDefault(require("./ItemTypes")); var _BoxDragPreview = _interopRequireDefault(require("./BoxDragPreview")); var _snapToGrid3 = _interopRequireDefault(require("./snapToGrid")); var _class, _temp; var layerStyles = { position: 'fixed', pointerEvents: 'none', zIndex: 100, left: 0, top: 0, width: '100%', height: '100%' }; function getItemStyles(props) { var initialOffset = props.initialOffset, currentOffset = props.currentOffset; if (!initialOffset || !currentOffset) { return { display: 'none' }; } var x = currentOffset.x, y = currentOffset.y; if (props.snapToGrid) { x -= initialOffset.x; y -= initialOffset.y; var _snapToGrid = (0, _snapToGrid3.default)(x, y); var _snapToGrid2 = (0, _slicedToArray2.default)(_snapToGrid, 2); x = _snapToGrid2[0]; y = _snapToGrid2[1]; x += initialOffset.x; y += initialOffset.y; } var transform = "translate(".concat(x, "px, ").concat(y, "px)"); return { transform: transform, WebkitTransform: transform }; } var cdl = (_temp = _class = /*#__PURE__*/ function (_Component) { (0, _inherits2.default)(CustomDragLayer, _Component); function CustomDragLayer() { (0, _classCallCheck2.default)(this, CustomDragLayer); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CustomDragLayer).apply(this, arguments)); } (0, _createClass2.default)(CustomDragLayer, [{ key: "renderItem", value: function renderItem(type, item) { switch (type) { case _ItemTypes.default.BOX: return _react.default.createElement(_BoxDragPreview.default, { title: item.title }); default: return null; } } }, { key: "render", value: function render() { var _this$props = this.props, item = _this$props.item, itemType = _this$props.itemType, isDragging = _this$props.isDragging; if (!isDragging) { return null; } return _react.default.createElement("div", { style: layerStyles }, _react.default.createElement("div", { style: getItemStyles(this.props) }, this.renderItem(itemType, item))); } }]); return CustomDragLayer; }(_react.Component), _class.propTypes = { currentOffset: _propTypes.default.shape({ x: _propTypes.default.number.isRequired, y: _propTypes.default.number.isRequired }), initialOffset: _propTypes.default.shape({ x: _propTypes.default.number.isRequired, y: _propTypes.default.number.isRequired }), isDragging: _propTypes.default.bool.isRequired, item: _propTypes.default.object, itemType: _propTypes.default.string, snapToGrid: _propTypes.default.bool.isRequired }, _temp); var _default = (0, _reactDnd.DragLayer)(function (monitor) { return { item: monitor.getItem(), itemType: monitor.getItemType(), initialOffset: monitor.getInitialSourceClientOffset(), currentOffset: monitor.getSourceClientOffset(), isDragging: monitor.isDragging() }; })(cdl); exports.default = _default;