react-beautiful-dnd
Version:
Beautiful, accessible drag and drop for lists with React.js
102 lines (71 loc) • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _createStore = require('../../state/create-store');
var _createStore2 = _interopRequireDefault(_createStore);
var _fireHooks = require('../../state/fire-hooks');
var _fireHooks2 = _interopRequireDefault(_fireHooks);
var _contextKeys = require('../context-keys');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DragDropContext = function (_Component) {
(0, _inherits3.default)(DragDropContext, _Component);
function DragDropContext() {
(0, _classCallCheck3.default)(this, DragDropContext);
return (0, _possibleConstructorReturn3.default)(this, (DragDropContext.__proto__ || (0, _getPrototypeOf2.default)(DragDropContext)).apply(this, arguments));
}
(0, _createClass3.default)(DragDropContext, [{
key: 'getChildContext',
value: function getChildContext() {
return (0, _defineProperty3.default)({}, _contextKeys.storeKey, this.store);
}
}, {
key: 'componentWillMount',
value: function componentWillMount() {
var _this2 = this;
this.store = (0, _createStore2.default)();
var previous = this.store.getState();
this.unsubscribe = this.store.subscribe(function () {
var current = _this2.store.getState();
var hooks = {
onDragStart: _this2.props.onDragStart,
onDragEnd: _this2.props.onDragEnd
};
(0, _fireHooks2.default)(hooks, current, previous);
previous = current;
});
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.unsubscribe();
}
}, {
key: 'render',
value: function render() {
return this.props.children;
}
}]);
return DragDropContext;
}(_react.Component);
DragDropContext.childContextTypes = (0, _defineProperty3.default)({}, _contextKeys.storeKey, _propTypes2.default.shape({
dispatch: _propTypes2.default.func.isRequired,
subscribe: _propTypes2.default.func.isRequired,
getState: _propTypes2.default.func.isRequired
}).isRequired);
exports.default = DragDropContext;