vue3-dnd
Version:
Drag and Drop for Vue Composition API
25 lines (24 loc) • 944 B
JavaScript
import { SourceConnector } from "../../internals";
import { useDragDropManager } from "../useDragDropManager";
import { computed, unref, watchEffect } from "vue-demi";
export function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {
var manager = useDragDropManager();
var connector = computed(function() {
return new SourceConnector(unref(manager).getBackend());
});
watchEffect(function(onCleanup) {
connector.value.dragSourceOptions = unref(dragSourceOptions) || null;
unref(connector).reconnect();
onCleanup(function() {
connector.value.disconnectDragSource();
});
});
watchEffect(function(onCleanup) {
connector.value.dragPreviewOptions = unref(dragPreviewOptions) || null;
unref(connector).reconnect();
onCleanup(function() {
connector.value.disconnectDragPreview();
});
});
return connector;
}