1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| import type { SortableOptions } from 'sortablejs';
| import type Sortable from 'sortablejs';
|
| function useSortable<T extends HTMLElement>(
| sortableContainer: T,
| options: SortableOptions = {},
| ) {
| const initializeSortable = async () => {
| const Sortable = await import(
| // @ts-expect-error - This is a dynamic import
| 'sortablejs/modular/sortable.complete.esm.js'
| );
| const sortable = Sortable?.default?.create?.(sortableContainer, {
| animation: 300,
| delay: 400,
| delayOnTouchOnly: true,
| ...options,
| });
| return sortable as Sortable;
| };
|
| return {
| initializeSortable,
| };
| }
|
| export { useSortable };
|
| export type { Sortable };
|
|