diff --git a/src/renderer/views/Playlist/Playlist.js b/src/renderer/views/Playlist/Playlist.js index 53f7e82611da5..f2708a23b2228 100644 --- a/src/renderer/views/Playlist/Playlist.js +++ b/src/renderer/views/Playlist/Playlist.js @@ -199,9 +199,14 @@ export default defineComponent({ this.playlistItems = result.items.map(parseLocalPlaylistVideo) + let shouldGetNextPage = false if (result.has_continuation) { this.continuationData = result + shouldGetNextPage = this.playlistItems.length < 100 } + // To workaround the effect of useless continuation data + // auto load next page again when no. of parsed items < page size + if (shouldGetNextPage) { this.getNextPageLocal() } this.isLoading = false }).catch((err) => { @@ -294,12 +299,17 @@ export default defineComponent({ this.isLoadingMore = true getLocalPlaylistContinuation(this.continuationData).then((result) => { + let shouldGetNextPage = false + if (result) { const parsedVideos = result.items.map(parseLocalPlaylistVideo) this.playlistItems = this.playlistItems.concat(parsedVideos) if (result.has_continuation) { this.continuationData = result + // To workaround the effect of useless continuation data + // auto load next page again when no. of parsed items < page size + shouldGetNextPage = parsedVideos.length < 100 } else { this.continuationData = null } @@ -308,6 +318,7 @@ export default defineComponent({ } this.isLoadingMore = false + if (shouldGetNextPage) { this.getNextPageLocal() } }) },