diff --git a/src/apps/experimental/components/library/PlayAllButton.tsx b/src/apps/experimental/components/library/PlayAllButton.tsx index 65315d2168..9c87d0056b 100644 --- a/src/apps/experimental/components/library/PlayAllButton.tsx +++ b/src/apps/experimental/components/library/PlayAllButton.tsx @@ -27,10 +27,12 @@ const PlayAllButton: FC = ({ item, items, viewType, hasFilte SortBy: [libraryViewSettings.SortBy], SortOrder: [libraryViewSettings.SortOrder] } + }).catch(err => { + console.error('[PlayAllButton] failed to play', err); }); } else { playbackManager.play({ - items: items, + items, autoplay: true, queryOptions: { ParentId: item?.Id ?? undefined, @@ -38,7 +40,8 @@ const PlayAllButton: FC = ({ item, items, viewType, hasFilte SortBy: [libraryViewSettings.SortBy], SortOrder: [libraryViewSettings.SortOrder] } - + }).catch(err => { + console.error('[PlayAllButton] failed to play', err); }); } }, [hasFilters, item, items, libraryViewSettings, viewType]); diff --git a/src/apps/experimental/components/library/QueueButton.tsx b/src/apps/experimental/components/library/QueueButton.tsx index 3b9cca64c3..31abe4d7b2 100644 --- a/src/apps/experimental/components/library/QueueButton.tsx +++ b/src/apps/experimental/components/library/QueueButton.tsx @@ -17,10 +17,14 @@ const QueueButton: FC = ({ item, items, hasFilters }) => { if (item && !hasFilters) { playbackManager.queue({ items: [item] + }).catch(err => { + console.error('[QueueButton] failed to add to queue', err); }); } else { playbackManager.queue({ - items: items + items + }).catch(err => { + console.error('[QueueButton] failed to add to queue', err); }); } }, [hasFilters, item, items]); diff --git a/src/apps/experimental/components/library/ShuffleButton.tsx b/src/apps/experimental/components/library/ShuffleButton.tsx index dde6d56417..2a85add1f2 100644 --- a/src/apps/experimental/components/library/ShuffleButton.tsx +++ b/src/apps/experimental/components/library/ShuffleButton.tsx @@ -24,13 +24,15 @@ const ShuffleButton: FC = ({ item, items, viewType, hasFilte playbackManager.shuffle(item); } else { playbackManager.play({ - items: items, + items, autoplay: true, queryOptions: { ParentId: item?.Id ?? undefined, ...getFiltersQuery(viewType, libraryViewSettings), SortBy: [ItemSortBy.Random] } + }).catch(err => { + console.error('[ShuffleButton] failed to play', err); }); } }, [hasFilters, item, items, libraryViewSettings, viewType]); diff --git a/src/apps/experimental/features/details/components/buttons/MoreCommandsButton.tsx b/src/apps/experimental/features/details/components/buttons/MoreCommandsButton.tsx index b9c979f9f8..99db01378d 100644 --- a/src/apps/experimental/features/details/components/buttons/MoreCommandsButton.tsx +++ b/src/apps/experimental/features/details/components/buttons/MoreCommandsButton.tsx @@ -39,7 +39,7 @@ function playAllFromHere(opts: PlayAllFromHereOptions) { } if (!ids.length) { - return; + return Promise.resolve(); } if (queue) { @@ -168,6 +168,8 @@ const MoreCommandsButton: FC = ({ item: item || {}, items: items || [], serverId: item?.ServerId + }).catch(err => { + console.error('[MoreCommandsButton] failed to play', err); }); } else if (result.command === 'queueallfromhere') { playAllFromHere({ @@ -175,6 +177,8 @@ const MoreCommandsButton: FC = ({ items: items || [], serverId: item?.ServerId, queue: true + }).catch(err => { + console.error('[MoreCommandsButton] failed to play', err); }); } else if (result.deleted) { if (result?.itemId !== itemId) { diff --git a/src/apps/experimental/features/details/components/buttons/PlayOrResumeButton.tsx b/src/apps/experimental/features/details/components/buttons/PlayOrResumeButton.tsx index a52453656f..97298b3813 100644 --- a/src/apps/experimental/features/details/components/buttons/PlayOrResumeButton.tsx +++ b/src/apps/experimental/features/details/components/buttons/PlayOrResumeButton.tsx @@ -58,6 +58,8 @@ const PlayOrResumeButton: FC = ({ ); playbackManager.play({ items: [channel] + }).catch(err => { + console.error('[PlayOrResumeButton] failed to play', err); }); return; } @@ -65,6 +67,8 @@ const PlayOrResumeButton: FC = ({ playbackManager.play({ items: [item], ...playOptions + }).catch(err => { + console.error('[PlayOrResumeButton] failed to play', err); }); }, [apiContext, item, playOptions, queryClient]); diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 177fc34988..c761f7317b 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -3113,11 +3113,11 @@ export class PlaybackManager { }; self.queue = function (options, player = this._currentPlayer) { - queue(options, '', player); + return queue(options, '', player); }; self.queueNext = function (options, player = this._currentPlayer) { - queue(options, 'next', player); + return queue(options, 'next', player); }; function queue(options, mode, player) { diff --git a/src/components/playlisteditor/playlisteditor.ts b/src/components/playlisteditor/playlisteditor.ts index 3db83914e1..6297906956 100644 --- a/src/components/playlisteditor/playlisteditor.ts +++ b/src/components/playlisteditor/playlisteditor.ts @@ -145,6 +145,8 @@ function addToPlaylist(dlg: DialogElement, id: string) { playbackManager.queue({ serverId: currentServerId, ids: itemIds.split(',') + }).catch(err => { + console.error('[PlaylistEditor] failed to add to queue', err); }); dlg.submitted = true; dialogHelper.close(dlg);