add support for full playlist re-order (#1327)

This commit is contained in:
jeffvli
2025-12-06 17:41:10 -08:00
parent 126b5ed67d
commit 0a7029f7bc
28 changed files with 1301 additions and 59 deletions
+21 -14
View File
@@ -27,6 +27,7 @@ interface UseDraggableProps {
getId: () => string[];
getItem: () => unknown[];
itemType?: LibraryItem;
metadata?: Record<string, unknown>;
onDragStart?: () => void;
onDrop?: () => void;
onGenerateDragPreview?: (data: BaseEventPayload<ElementDragType>) => void;
@@ -66,13 +67,16 @@ export const useDragDrop = <TElement extends HTMLElement>({
const id = drag.getId();
const item = drag.getItem();
const data = dndUtils.generateDragData({
id,
item,
itemType: drag.itemType,
operation: drag.operation,
type: drag.target,
});
const data = dndUtils.generateDragData(
{
id,
item,
itemType: drag.itemType,
operation: drag.operation,
type: drag.target,
},
drag.metadata,
);
return data;
},
onDragStart: () => {
@@ -88,13 +92,16 @@ export const useDragDrop = <TElement extends HTMLElement>({
return drag.onGenerateDragPreview(data);
}
const dragData = dndUtils.generateDragData({
id: drag.getId(),
item: drag.getItem(),
itemType: drag.itemType,
operation: drag.operation,
type: drag.target,
}) as DragData;
const dragData = dndUtils.generateDragData(
{
id: drag.getId(),
item: drag.getItem(),
itemType: drag.itemType,
operation: drag.operation,
type: drag.target,
},
drag.metadata,
) as DragData;
disableNativeDragPreview({ nativeSetDragImage: data.nativeSetDragImage });
setCustomNativeDragPreview({