add drag/drop from lists into queue

This commit is contained in:
jeffvli
2025-11-09 20:44:03 -08:00
parent d7e2ec0860
commit 489daa6353
16 changed files with 718 additions and 355 deletions
+1
View File
@@ -2,6 +2,7 @@
* {
box-sizing: border-box;
outline: none;
}
*,
+7 -2
View File
@@ -9,8 +9,9 @@ export enum DragTarget {
GENERIC = 'generic',
GENRE = LibraryItem.GENRE,
PLAYLIST = LibraryItem.PLAYLIST,
QUEUE_SONG = LibraryItem.QUEUE_SONG,
SONG = LibraryItem.SONG,
TABLE_COLUMN = 'tableColumn',
TRACK = LibraryItem.SONG,
}
export const DragTargetMap = {
@@ -19,7 +20,8 @@ export const DragTargetMap = {
[LibraryItem.ARTIST]: DragTarget.ARTIST,
[LibraryItem.GENRE]: DragTarget.GENRE,
[LibraryItem.PLAYLIST]: DragTarget.PLAYLIST,
[LibraryItem.SONG]: DragTarget.TRACK,
[LibraryItem.QUEUE_SONG]: DragTarget.QUEUE_SONG,
[LibraryItem.SONG]: DragTarget.SONG,
};
export enum DragOperation {
@@ -38,6 +40,7 @@ export interface DragData<
> {
id: string[];
item?: TDataType[];
itemType?: LibraryItem;
metadata?: T;
operation?: DragOperation[];
type: DragTarget;
@@ -52,6 +55,7 @@ export const dndUtils = {
args: {
id: string[];
item?: TDataType[];
itemType?: LibraryItem;
operation?: DragOperation[];
type: DragTarget | string;
},
@@ -60,6 +64,7 @@ export const dndUtils = {
return {
id: args.id,
item: args.item,
itemType: args.itemType,
metadata,
operation: args.operation,
type: args.type,