@6thquake/react-material
Version:
React components that implement Google's Material Design.
144 lines (111 loc) • 5.19 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
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 _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _dndCore = require("dnd-core");
var _invariant = _interopRequireDefault(require("invariant"));
var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
var _reactDndHtml5Backend = _interopRequireDefault(require("react-dnd-html5-backend"));
/**
* @ignore - do not document.
*/
function checkDecoratorArguments(functionName, signature) {
if (process.env.NODE_ENV !== 'production') {
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
for (var _i = 0, _args = args; _i < _args.length; _i++) {
var arg = _args[_i];
if (arg && arg.prototype && arg.prototype.render) {
// tslint:disable-next-line no-console
console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#you-seem-to-be-applying-the-arguments-in-the-wrong-order');
return;
}
}
}
}
var CHILD_CONTEXT_TYPES = {
dragDropManager: _propTypes.default.object.isRequired
};
var defaultManager;
function createChildContext(backend, context) {
if (!defaultManager) {
defaultManager = (0, _dndCore.createDragDropManager)(backend || _reactDndHtml5Backend.default, context);
}
return {
dragDropManager: defaultManager
};
}
function DragDropContext(backendFactory, context) {
checkDecoratorArguments('DragDropContext', 'backend', backendFactory); // eslint-disable-line prefer-rest-params
var childContext = createChildContext(backendFactory, context);
return function decorateContext(DecoratedComponent) {
var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';
var DragDropContextContainer =
/*#__PURE__*/
function (_React$Component) {
(0, _inherits2.default)(DragDropContextContainer, _React$Component);
function DragDropContextContainer() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, DragDropContextContainer);
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
_this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(DragDropContextContainer)).call.apply(_getPrototypeOf2, [this].concat(args)));
_this.child = null;
return _this;
}
(0, _createClass2.default)(DragDropContextContainer, [{
key: "getChildContext",
value: function getChildContext() {
return childContext;
}
}, {
key: "getDecoratedComponentInstance",
value: function getDecoratedComponentInstance() {
(0, _invariant.default)(this.child, 'In order to access an instance of the decorated component it can not be a stateless component.');
return this.child;
}
}, {
key: "getManager",
value: function getManager() {
return childContext.dragDropManager;
}
}, {
key: "render",
value: function render() {
var _this2 = this;
return _react.default.createElement(DecoratedComponent, (0, _extends2.default)({}, this.props, {
ref: function ref(child) {
return _this2.child = child;
}
}));
}
}]);
return DragDropContextContainer;
}(_react.default.Component);
DragDropContextContainer.DecoratedComponent = DecoratedComponent;
DragDropContextContainer.displayName = "DragDropContext(".concat(displayName, ")");
DragDropContextContainer.childContextTypes = CHILD_CONTEXT_TYPES;
return (0, _hoistNonReactStatics.default)(DragDropContextContainer, DecoratedComponent);
};
}
var withDragAndDrop = function withDragAndDrop() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return function (Component) {
return DragDropContext(options.backend || _reactDndHtml5Backend.default)(Component);
};
};
var _default = withDragAndDrop;
exports.default = _default;
;