@@ -410,6 +410,7 @@ import {
410410 EventType ,
411411 MediaItemType ,
412412 MediaType ,
413+ PlayerQueue ,
413414 QueueItem ,
414415 Track ,
415416} from " @/plugins/api/interfaces" ;
@@ -640,29 +641,15 @@ const queueCommand = function (item: QueueItem | undefined, command: string) {
640641 }
641642};
642643
643- const loadItems = async function (clear = false ) {
644- if (clear ) {
645- tempHide .value = true ;
646- queueItems .value = [];
647- await sleep (100 );
648- tempHide .value = false ;
649- return ;
650- }
651-
652- if (store .activePlayerQueue ) {
653- const offset = queueItems .value .length ;
654- const limit = (store .activePlayerQueue .current_index || 0 ) + 50 ;
655- const result = await api .getPlayerQueueItems (
656- store .activePlayerQueue .queue_id ,
657- limit ,
658- offset ,
659- );
660- queueItems .value .push (... result );
661- }
644+ const resetItems = async function () {
645+ tempHide .value = true ;
646+ queueItems .value = [];
647+ await sleep (100 );
648+ tempHide .value = false ;
662649};
663650
664651// eslint-disable-next-line @typescript-eslint/no-explicit-any
665- const loadNextPage = function ({ done }: { done: any }) {
652+ const loadNextPage = async function ({ done }: { done: any }) {
666653 if (! store .activePlayerQueue || store .activePlayerQueue .items == 0 ) {
667654 done (" empty" );
668655 return ;
@@ -671,10 +658,19 @@ const loadNextPage = function ({ done }: { done: any }) {
671658 done (" empty" );
672659 return ;
673660 }
674-
675- loadItems (false ).then (() => {
661+ const offset = queueItems .value .length ;
662+ const limit = (store .activePlayerQueue .current_index || 0 ) + 50 ;
663+ const result = await api .getPlayerQueueItems (
664+ store .activePlayerQueue .queue_id ,
665+ limit ,
666+ offset ,
667+ );
668+ queueItems .value .push (... result );
669+ if (result .length < 50 ) {
670+ done (" empty" );
671+ } else {
676672 done (" ok" );
677- });
673+ }
678674};
679675
680676// listen for item updates to refresh items when that happens
@@ -683,7 +679,8 @@ onMounted(() => {
683679 EventType .QUEUE_ITEMS_UPDATED ,
684680 (evt : EventMessage ) => {
685681 if (evt .object_id != store .activePlayerQueue ?.queue_id ) return ;
686- loadItems (true );
682+ const queue = evt .data as PlayerQueue ;
683+ resetItems ();
687684 },
688685 );
689686 onBeforeUnmount (unsub );
@@ -740,7 +737,7 @@ const activeQueuePanelClick = function () {
740737watch (
741738 () => store .activePlayerId ,
742739 (val ) => {
743- loadItems ( true );
740+ resetItems ( );
744741 },
745742 { immediate: true },
746743);
0 commit comments