UNPKG

qtsd-fork

Version:

Do not use this please

62 lines (46 loc) 1.57 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createTargetConnector; var _wrapConnectorHooks = require('./wrapConnectorHooks'); var _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks); var _areOptionsEqual = require('./areOptionsEqual'); var _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function createTargetConnector(backend) { var currentHandlerId = void 0; var currentDropTargetNode = void 0; var currentDropTargetOptions = void 0; var disconnectCurrentDropTarget = void 0; function reconnectDropTarget() { if (disconnectCurrentDropTarget) { disconnectCurrentDropTarget(); disconnectCurrentDropTarget = null; } if (currentHandlerId && currentDropTargetNode) { disconnectCurrentDropTarget = backend.connectDropTarget(currentHandlerId, currentDropTargetNode, currentDropTargetOptions); } } function receiveHandlerId(handlerId) { if (handlerId === currentHandlerId) { return; } currentHandlerId = handlerId; reconnectDropTarget(); } var hooks = (0, _wrapConnectorHooks2.default)({ dropTarget: function connectDropTarget(node, options) { if (node === currentDropTargetNode && (0, _areOptionsEqual2.default)(options, currentDropTargetOptions)) { return; } currentDropTargetNode = node; currentDropTargetOptions = options; reconnectDropTarget(); } }); return { receiveHandlerId: receiveHandlerId, hooks: hooks }; }