From c283c559c777eab7a533a38a646607a91e98bd6f Mon Sep 17 00:00:00 2001 From: Florrie Date: Fri, 1 Jun 2018 17:59:27 -0300 Subject: Only call buildItems once when a group is queued --- ui.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'ui.js') diff --git a/ui.js b/ui.js index 778f5eb..0c2be5f 100644 --- a/ui.js +++ b/ui.js @@ -117,17 +117,17 @@ class AppElement extends FocusElement { this.player.togglePause() } - async queueGrouplikeItem(item, play = true, afterItem = null) { + async queueGrouplikeItem(topItem, play = true, afterItem = null) { const newTrackIndex = this.queueGrouplike.items.length - handleTrack: { + const recursivelyAddTracks = item => { // For groups, just queue all children. if (isGroup(item)) { for (const child of item.items) { - await this.queueGrouplikeItem(child, false) + recursivelyAddTracks(child) } - break handleTrack + return } const items = this.queueGrouplike.items @@ -147,10 +147,11 @@ class AppElement extends FocusElement { } else { items.push(item) } - - this.queueListingElement.buildItems() } + recursivelyAddTracks(topItem) + this.queueListingElement.buildItems() + // This is the first new track, if a group was queued. const newTrack = this.queueGrouplike.items[newTrackIndex] if (play && !this.playingTrack && newTrack) { -- cgit 1.3.0-6-gf8a5