From cea1c147572f46a9aa98a74a328d3997dd0c9530 Mon Sep 17 00:00:00 2001
From: Agate <me@agate.blue>
Date: Tue, 18 Aug 2020 18:03:34 +0200
Subject: [PATCH] Fix  #1190: improved shuffle behaviour

---
 changes/changelog.d/1190.enhancement | 1 +
 front/src/store/queue.js             | 9 ++++-----
 2 files changed, 5 insertions(+), 5 deletions(-)
 create mode 100644 changes/changelog.d/1190.enhancement

diff --git a/changes/changelog.d/1190.enhancement b/changes/changelog.d/1190.enhancement
new file mode 100644
index 0000000000..b64dc9d920
--- /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 a5ab856a44..5acff3efb3 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)
     }
   }
 }
-- 
GitLab