mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 10:23:33 +00:00
Add playlist queue handler
This commit is contained in:
parent
aa1cd742ad
commit
5cef23944f
2 changed files with 42 additions and 21 deletions
|
|
@ -93,10 +93,13 @@ export const ContextMenuProvider = ({ children }: ContextMenuProviderProps) => {
|
||||||
handlePlayQueueAdd?.({ byData: ctx.data, play });
|
handlePlayQueueAdd?.({ byData: ctx.data, play });
|
||||||
break;
|
break;
|
||||||
case LibraryItem.PLAYLIST:
|
case LibraryItem.PLAYLIST:
|
||||||
handlePlayQueueAdd?.({
|
for (const item of ctx.data) {
|
||||||
byItemType: { id: ctx.data.map((item) => item.id), type: ctx.type },
|
handlePlayQueueAdd?.({
|
||||||
play,
|
byItemType: { id: [item.id], type: ctx.type },
|
||||||
});
|
play,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,20 @@ export const useHandlePlayQueueAdd = () => {
|
||||||
let songsList;
|
let songsList;
|
||||||
let queryFilter: any;
|
let queryFilter: any;
|
||||||
let queryKey: any;
|
let queryKey: any;
|
||||||
if (options.byItemType.type === LibraryItem.ALBUM) {
|
if (options.byItemType.type === LibraryItem.PLAYLIST) {
|
||||||
|
queryFilter = {
|
||||||
|
id: options.byItemType?.id || [],
|
||||||
|
sortBy: 'id',
|
||||||
|
sortOrder: SortOrder.ASC,
|
||||||
|
startIndex: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
queryKey = queryKeys.playlists.songList(
|
||||||
|
server?.id,
|
||||||
|
options.byItemType?.id?.[0] || '',
|
||||||
|
queryFilter,
|
||||||
|
);
|
||||||
|
} else if (options.byItemType.type === LibraryItem.ALBUM) {
|
||||||
queryFilter = {
|
queryFilter = {
|
||||||
albumIds: options.byItemType?.id || [],
|
albumIds: options.byItemType?.id || [],
|
||||||
sortBy: SongListSort.ALBUM,
|
sortBy: SongListSort.ALBUM,
|
||||||
|
|
@ -48,26 +61,29 @@ export const useHandlePlayQueueAdd = () => {
|
||||||
startIndex: 0,
|
startIndex: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
queryKey = queryKeys.songs.list(server?.id, queryFilter);
|
|
||||||
} else if (options.byItemType.type === LibraryItem.PLAYLIST) {
|
|
||||||
queryFilter = {
|
|
||||||
artistIds: options.byItemType?.id || [],
|
|
||||||
sortBy: SongListSort.ALBUM,
|
|
||||||
sortOrder: SortOrder.ASC,
|
|
||||||
startIndex: 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
queryKey = queryKeys.songs.list(server?.id, queryFilter);
|
queryKey = queryKeys.songs.list(server?.id, queryFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
songsList = await queryClient.fetchQuery(queryKey, async ({ signal }) =>
|
if (options.byItemType?.type === LibraryItem.PLAYLIST) {
|
||||||
api.controller.getSongList({
|
songsList = await queryClient.fetchQuery(queryKey, async ({ signal }) =>
|
||||||
query: queryFilter,
|
api.controller.getPlaylistSongList({
|
||||||
server,
|
query: queryFilter,
|
||||||
signal,
|
server,
|
||||||
}),
|
signal,
|
||||||
);
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log('songsList', songsList);
|
||||||
|
} else {
|
||||||
|
songsList = await queryClient.fetchQuery(queryKey, async ({ signal }) =>
|
||||||
|
api.controller.getSongList({
|
||||||
|
query: queryFilter,
|
||||||
|
server,
|
||||||
|
signal,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
return toast.error({
|
return toast.error({
|
||||||
message: err.message,
|
message: err.message,
|
||||||
|
|
@ -91,6 +107,8 @@ export const useHandlePlayQueueAdd = () => {
|
||||||
case 'subsonic':
|
case 'subsonic':
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('songs', songs);
|
||||||
} else if (options.byData) {
|
} else if (options.byData) {
|
||||||
songs = options.byData.map((song) => ({ ...song, uniqueId: nanoid() }));
|
songs = options.byData.map((song) => ({ ...song, uniqueId: nanoid() }));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue