MCPcopy
hub / github.com/clauderic/dnd-kit / useSortable

Function useSortable

packages/vue/src/sortable/useSortable.ts:28–108  ·  view source on GitHub ↗
(input: UseSortableInput<T>)

Source from the content-addressed store, hash-verified

26}
27
28export function useSortable<T extends Data = Data>(input: UseSortableInput<T>) {
29 const transition = computed(() => ({
30 ...defaultSortableTransition,
31 ...toValue(input.transition),
32 }));
33
34 const sortable = useInstance((manager) => {
35 const _input = toValueDeep(input);
36
37 return new Sortable(
38 {
39 ..._input,
40 register: false,
41 transition: transition.value,
42 element: unrefElement(input.element),
43 handle: unrefElement(input.handle),
44 target: unrefElement(input.target),
45 },
46 manager
47 );
48 });
49 const trackedSortable = useDeepSignal(sortable);
50
51 watchEffect(() => {
52 sortable.value.element = unrefElement(input.element);
53 sortable.value.handle = unrefElement(input.handle);
54
55 if (unrefElement(input.source)) {
56 sortable.value.source = unrefElement(input.source);
57 }
58 if (unrefElement(input.target)) {
59 sortable.value.target = unrefElement(input.target);
60 }
61
62 sortable.value.id = toValue(input.id);
63 sortable.value.disabled = toValue(input.disabled) ?? false;
64 sortable.value.alignment = toValue(input.alignment);
65 sortable.value.plugins = toValue(input.plugins);
66 sortable.value.modifiers = toValue(input.modifiers);
67 sortable.value.sensors = toValue(input.sensors);
68 sortable.value.accept = toValue(input.accept);
69 sortable.value.type = toValue(input.type);
70 sortable.value.collisionPriority = toValue(input.collisionPriority);
71 sortable.value.transition = transition.value;
72
73 if (toValue(input.data)) {
74 sortable.value.data = toValue(input.data)!;
75 }
76 });
77
78 watch(
79 [() => toValue(input.group), () => toValue(input.index)],
80 () => {
81 batch(() => {
82 sortable.value.group = toValue(input.group);
83 sortable.value.index = toValue(input.index);
84 });
85 },

Callers 15

SortableItemFunction · 0.90
SortableItemFunction · 0.90
SortableFunction · 0.90
SortableFunction · 0.90
SortableFunction · 0.90
SortableFunction · 0.90
SortableFunction · 0.90
SortableItemFunction · 0.90
SortableColumnFunction · 0.90
SortableFunction · 0.90
SortableFunction · 0.90

Calls 6

useInstanceFunction · 0.90
toValueDeepFunction · 0.90
unrefElementFunction · 0.90
useDeepSignalFunction · 0.90
computedFunction · 0.85
refreshShapeMethod · 0.80

Tested by

no test coverage detected