mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 12:27:26 -04:00 
			
		
		
		
	- Remove jQuery - Add types to all functions - Tested all modified functionality --------- Co-authored-by: Giteabot <teabot@gitea.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
		
			
				
	
	
		
			24 lines
		
	
	
		
			906 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			906 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type {SortableOptions, SortableEvent} from 'sortablejs';
 | |
| import type SortableType from 'sortablejs';
 | |
| 
 | |
| export async function createSortable(el: Element, opts: {handle?: string} & SortableOptions = {}): Promise<SortableType> {
 | |
|   // @ts-expect-error: wrong type derived by typescript
 | |
|   const {Sortable} = await import(/* webpackChunkName: "sortablejs" */'sortablejs');
 | |
| 
 | |
|   return new Sortable(el, {
 | |
|     animation: 150,
 | |
|     ghostClass: 'card-ghost',
 | |
|     onChoose: (e: SortableEvent) => {
 | |
|       const handle = opts.handle ? e.item.querySelector(opts.handle) : e.item;
 | |
|       handle.classList.add('tw-cursor-grabbing');
 | |
|       opts.onChoose?.(e);
 | |
|     },
 | |
|     onUnchoose: (e: SortableEvent) => {
 | |
|       const handle = opts.handle ? e.item.querySelector(opts.handle) : e.item;
 | |
|       handle.classList.remove('tw-cursor-grabbing');
 | |
|       opts.onUnchoose?.(e);
 | |
|     },
 | |
|     ...opts,
 | |
|   } satisfies SortableOptions);
 | |
| }
 |