UNPKG

qtsd-fork

Version:

Do not use this please

112 lines (88 loc) 3.72 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _createStore = require('redux/lib/createStore'); var _createStore2 = _interopRequireDefault(_createStore); var _reducers = require('./reducers'); var _reducers2 = _interopRequireDefault(_reducers); var _dragDrop = require('./actions/dragDrop'); var dragDropActions = _interopRequireWildcard(_dragDrop); var _DragDropMonitor = require('./DragDropMonitor'); var _DragDropMonitor2 = _interopRequireDefault(_DragDropMonitor); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var DragDropManager = function () { function DragDropManager(createBackend) { var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; _classCallCheck(this, DragDropManager); var store = (0, _createStore2.default)(_reducers2.default); this.context = context; this.store = store; this.monitor = new _DragDropMonitor2.default(store); this.registry = this.monitor.registry; this.backend = createBackend(this); store.subscribe(this.handleRefCountChange.bind(this)); } _createClass(DragDropManager, [{ key: 'handleRefCountChange', value: function handleRefCountChange() { var shouldSetUp = this.store.getState().refCount > 0; if (shouldSetUp && !this.isSetUp) { this.backend.setup(); this.isSetUp = true; } else if (!shouldSetUp && this.isSetUp) { this.backend.teardown(); this.isSetUp = false; } } }, { key: 'getContext', value: function getContext() { return this.context; } }, { key: 'getMonitor', value: function getMonitor() { return this.monitor; } }, { key: 'getBackend', value: function getBackend() { return this.backend; } }, { key: 'getRegistry', value: function getRegistry() { return this.registry; } }, { key: 'getActions', value: function getActions() { var manager = this; var dispatch = this.store.dispatch; function bindActionCreator(actionCreator) { return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var action = actionCreator.apply(manager, args); if (typeof action !== 'undefined') { dispatch(action); } }; } return Object.keys(dragDropActions).filter(function (key) { return typeof dragDropActions[key] === 'function'; }).reduce(function (boundActions, key) { var action = dragDropActions[key]; boundActions[key] = bindActionCreator(action); // eslint-disable-line no-param-reassign return boundActions; }, {}); } }]); return DragDropManager; }(); exports.default = DragDropManager;