@6thquake/react-material
Version:
React components that implement Google's Material Design.
167 lines (130 loc) • 4.77 kB
JavaScript
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;
;