UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

167 lines (130 loc) 4.77 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); 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 _react = _interopRequireWildcard(require("react")); var _withStyles = _interopRequireDefault(require("../styles/withStyles")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactDom = _interopRequireDefault(require("react-dom")); var _reactDnd = require("react-dnd"); /** * @ignore - do not document. */ var styles = { root: { display: 'inline-block', position: 'static' } }; var _source = { beginDrag: function beginDrag(props, monitor, component) { console.log('111', component); var item = component.decoratedComponentInstance.state.comp.beginDrag(props, monitor, component); // item.sourceType=_DnadD._sourceType; return item; }, endDrag: function endDrag(props, monitor, component) { component.decoratedComponentInstance.state.comp.endDrag(props, monitor, component); } }; var _target = { drop: function drop(props, monitor, component) { console.log('end drag'); if (component.state.acceptSource.indexOf(monitor.getItem().sourceType) === -1) { return; } component.state.comp.drop(props, monitor, component); }, hover: function hover(props, monitor, component) { // console.log("hover") // console.log(component); if (component.state.acceptSource.indexOf(monitor.getItem().sourceType) === -1) { return; } component.state.comp.hover(props, monitor, component); } }; function drag_collect(connect, monitor) { return { connect: connect, monitor: monitor, connectDragSource: connect.dragSource() }; } function drop_collect(connect, monitor) { return { connect: connect, monitor: monitor, itemType: monitor.getItemType(), connectDropTarget: connect.dropTarget() }; } var _DandD = /*#__PURE__*/ function (_PureComponent) { (0, _inherits2.default)(_DandD, _PureComponent); function _DandD(props) { var _this; (0, _classCallCheck2.default)(this, _DandD); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(_DandD).call(this, props)); _this.register = function (c) { // console.log("register",c); _this.setState({ comp: c }); // console.log(c); // _DandD._component=comp; }; _this.accept = function (items) { _this.setState(function (preState) { return { acceptSource: [].concat((0, _toConsumableArray2.default)(preState.acceptSource), (0, _toConsumableArray2.default)(items)) }; }); }; _this.state = { getSource: '', comp: null, acceptSource: [] }; return _this; } // static _sourceType=''; // static _component=null; (0, _createClass2.default)(_DandD, [{ key: "render", // 为了拿到子组件的设置的item值 value: function render() { var _this2 = this; var _this$props = this.props, connectDragSource = _this$props.connectDragSource, monitor = _this$props.monitor, children = _this$props.children, classes = _this$props.classes, connectDropTarget = _this$props.connectDropTarget, connect = _this$props.connect; var childrenWithProps = _react.default.Children.map(children, function (child) { return _react.default.cloneElement(child, { register: _this2.register.bind(_this2), accept: _this2.accept, connect: connect, monitor: monitor }); }); return connectDropTarget(connectDragSource(_react.default.createElement("div", { className: classes.root }, childrenWithProps))); } }]); return _DandD; }(_react.PureComponent); var _dt = (0, _reactDnd.DropTarget)('*', _target, drop_collect)(_DandD); var DandD = (0, _reactDnd.DragSource)('*', _source, drag_collect)(_dt); var _default = (0, _withStyles.default)(styles)(DandD); exports.default = _default;