Fix player migration errors

This commit is contained in:
wvffle 2022-10-31 21:51:08 +00:00 committed by Jacek Pruciak
parent ece2c468ca
commit 3fe7d28d5d
1 changed files with 15 additions and 9 deletions

View File

@ -13,7 +13,6 @@ import { useTracks } from '~/composables/audio/tracks'
import { gettext } from '~/init/locale'
import axios from 'axios'
import { set } from 'idb-keyval'
import { setGain } from './audio-api'
export interface QueueTrackSource {
@ -313,20 +312,27 @@ export const useQueue = createGlobalState(() => {
// Migrate old queue format to the new one
if (localStorage.queue) {
(async () => {
const { queue: { currentIndex: index, tracks } } = JSON.parse(localStorage.queue) as { queue: { currentIndex: number, tracks: Track[] } }
if (tracks.length !== 0) {
await enqueue(...tracks)
const { queue: { currentIndex: index, tracks: oldTracks } } = JSON.parse(localStorage.queue) as { queue: { currentIndex: number, tracks: Track[] } }
if (oldTracks.length !== 0) {
tracks.value.length = 0
await enqueue(...oldTracks)
}
currentIndex.value = index
delete localStorage.queue
const { looping: loopingMode, volume } = JSON.parse(localStorage.player)
looping.value = loopingMode
setGain(volume)
delete localStorage.player
})().catch((error) => console.error('Could not successfully migrate between queue versions', error))
}
if (localStorage.player) {
try {
const { player: { looping: loopingMode, volume } } = JSON.parse(localStorage.player) as { player: { looping: LoopingMode, volume: number }}
looping.value = loopingMode ?? 0
setGain(volume ?? 0.7)
delete localStorage.player
} catch (error) {
console.error('Could not successfully migrate between player versions', error)
}
}
}
return {