diff --git a/changes/changelog.d/1190.enhancement b/changes/changelog.d/1190.enhancement new file mode 100644 index 000000000..b64dc9d92 --- /dev/null +++ b/changes/changelog.d/1190.enhancement @@ -0,0 +1 @@ +Improved shuffle behaviour (#1190) \ No newline at end of file diff --git a/front/src/store/queue.js b/front/src/store/queue.js index a5ab856a4..5acff3efb 100644 --- a/front/src/store/queue.js +++ b/front/src/store/queue.js @@ -158,16 +158,15 @@ export default { // so we replay automatically on next track append commit('ended', true) }, - shuffle ({dispatch, commit, state}, callback) { - let toKeep = state.tracks.slice(0, state.currentIndex + 1) - let toShuffle = state.tracks.slice(state.currentIndex + 1) - let shuffled = toKeep.concat(_.shuffle(toShuffle)) + async shuffle ({dispatch, commit, state}, callback) { + let shuffled = _.shuffle(state.tracks) commit('tracks', []) let params = {tracks: shuffled} if (callback) { params.callback = callback } - dispatch('appendMany', params) + await dispatch('appendMany', params) + await dispatch('currentIndex', 0) } } }