vue3-dnd
Version:
Drag and Drop for Vue Composition API
30 lines (29 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDragSourceConnector = useDragSourceConnector;
var _internals = require("../../internals");
var _useDragDropManager = require("../useDragDropManager");
var _vueDemi = require("vue-demi");
function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {
var manager = (0, _useDragDropManager).useDragDropManager();
var connector = (0, _vueDemi).computed(function() {
return new _internals.SourceConnector((0, _vueDemi).unref(manager).getBackend());
});
(0, _vueDemi).watchEffect(function(onCleanup) {
connector.value.dragSourceOptions = (0, _vueDemi).unref(dragSourceOptions) || null;
(0, _vueDemi).unref(connector).reconnect();
onCleanup(function() {
connector.value.disconnectDragSource();
});
});
(0, _vueDemi).watchEffect(function(onCleanup) {
connector.value.dragPreviewOptions = (0, _vueDemi).unref(dragPreviewOptions) || null;
(0, _vueDemi).unref(connector).reconnect();
onCleanup(function() {
connector.value.disconnectDragPreview();
});
});
return connector;
}