From c08e1fad949a28779369888477fb6f970e1711e9 Mon Sep 17 00:00:00 2001 From: wvffle Date: Thu, 20 Oct 2022 08:51:41 +0000 Subject: [PATCH] WIP: Rewrite queue --- front/package.json | 7 +-- front/src/components/audio/Player.vue | 44 ++++++++--------- front/src/composables/audio/queue.ts | 59 ++++++++++++++++++++++ front/src/composables/audio/tracks.ts | 33 +++++-------- front/yarn.lock | 70 +++++++++++++++------------ 5 files changed, 136 insertions(+), 77 deletions(-) create mode 100644 front/src/composables/audio/queue.ts diff --git a/front/package.json b/front/package.json index 0b7a0cf88..3d719468c 100644 --- a/front/package.json +++ b/front/package.json @@ -22,9 +22,10 @@ "@sentry/tracing": "7.17.2", "@sentry/vue": "7.17.2", "@vue/runtime-core": "3.2.41", - "@vueuse/core": "9.3.0", - "@vueuse/integrations": "9.3.0", - "@vueuse/router": "9.3.0", + "@vueuse/core": "9.3.1", + "@vueuse/integrations": "9.3.1", + "@vueuse/math": "9.3.1", + "@vueuse/router": "9.3.1", "axios": "0.27.2", "axios-auth-refresh": "3.3.4", "diff": "5.1.0", diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue index 776e158b1..c2d9a324f 100644 --- a/front/src/components/audio/Player.vue +++ b/front/src/components/audio/Player.vue @@ -16,13 +16,24 @@ import { loading as isLoadingAudio } from '~/composables/audio/player' +import { + hasPrevious, + playPrevious, + hasNext, + playNext, + tracks, + currentIndex, + currentTrack, + isShuffling, + shuffle +} from '~/composables/audio/queue' + import { useMouse, useWindowSize } from '@vueuse/core' import { useGettext } from 'vue3-gettext' import { computed, ref } from 'vue' import { useStore } from '~/store' import onKeyboardShortcut from '~/composables/onKeyboardShortcut' -import useQueue from '~/composables/audio/useQueue' import time from '~/utils/time' import TrackFavoriteIcon from '~/components/favorites/TrackFavoriteIcon.vue' @@ -36,19 +47,6 @@ const toggleMobilePlayer = () => { store.commit('ui/queueFocused', ['queue', 'player'].includes(store.state.ui.queueFocused as string) ? null : 'player') } -const { - isShuffling, - shuffle, - previous, - isEmpty: queueIsEmpty, - hasNext, - hasPrevious, - currentTrack, - currentIndex, - tracks, - next -} = useQueue() - // Key binds onKeyboardShortcut('e', toggleMobilePlayer) onKeyboardShortcut('p', () => { isPlaying.value = !isPlaying.value }) @@ -67,8 +65,8 @@ onKeyboardShortcut(['shift', 'right'], () => seekBy(30), true) onKeyboardShortcut('left', () => seekBy(-5), true) onKeyboardShortcut(['shift', 'left'], () => seekBy(-30), true) -onKeyboardShortcut(['ctrl', 'shift', 'left'], previous, true) -onKeyboardShortcut(['ctrl', 'shift', 'right'], next, true) +onKeyboardShortcut(['ctrl', 'shift', 'left'], playPrevious, true) +onKeyboardShortcut(['ctrl', 'shift', 'right'], playNext, true) const labels = computed(() => ({ audioPlayer: $pgettext('Sidebar/Player/Hidden text', 'Media player'), @@ -188,10 +186,10 @@ const currentTimeFormatted = computed(() => time.parse(Math.round(currentTime.va
- {{ currentTrack.artist.name }} + {{ currentTrack.artist?.name }}