maintain playing track on shuffle (when audio is playing)

This commit is contained in:
geoffrey45
2022-09-10 20:32:17 +03:00
parent 32b309b6ee
commit 527051f8a2
3 changed files with 18 additions and 20 deletions
-14
View File
@@ -4,9 +4,6 @@
<NavButtons />
<div
:style="{
overflowY: hideOverflow() ? 'visible' : 'hidden',
}"
class="info"
>
<APTitle
@@ -20,10 +17,6 @@
<QueueTitle v-if="$route.name == Routes.queue" />
</div>
</div>
<!--
<div class="center rounded">
<Loader />
</div> -->
</div>
</template>
@@ -39,7 +32,6 @@ import { Routes } from "@/composables/enums";
import NavButtons from "./NavButtons.vue";
import FolderTitle from "./Titles/Folder.vue";
import SimpleTitle from "./Titles/SimpleTitle.vue";
import APTitle from "./Titles/APTitle.vue";
import SearchTitle from "./Titles/SearchTitle.vue";
import PlaylistsTitle from "./Titles/PlaylistsTitle.vue";
@@ -51,12 +43,6 @@ const nav = useNavStore();
const subPaths = ref<subPath[]>([]);
function hideOverflow() {
const { name } = route;
const { album, playlist, search, folder } = Routes;
return (album + playlist + search + folder).includes(name as string);
}
watch(
() => route.name,
+1 -1
View File
@@ -6,7 +6,7 @@
</router-link>
<div class="playing-from">
<div class="border rounded-sm pad-sm">
<source-icon />
<SourceIcon v-if="SourceIcon" />
<b class="ellip">{{ name }}</b>
</div>
</div>
+17 -5
View File
@@ -204,15 +204,27 @@ export default defineStore("Queue", {
return;
}
const shuffled = shuffle(this.tracklist);
this.tracklist = shuffled;
const current = this.currenttrack;
const current_hash = current.hash;
this.currentindex = 0;
this.currentid = shuffled[0].trackid;
this.tracklist = shuffle(this.tracklist);
// find current track after shuffle
if (this.playing) {
this.play(this.currentindex);
const newindex = this.tracklist.findIndex(
(track) => track.hash === current_hash
);
// remove current track from queue
this.tracklist.splice(newindex, 1);
// insert current track at beginning of queue
this.tracklist.unshift(current);
this.currentindex = 0;
return;
}
this.currentindex = 0;
this.play(this.currentindex);
},
removeFromQueue(index: number = 0) {
this.tracklist.splice(index, 1);