fix queue persistence
This commit is contained in:
parent
43592bce8a
commit
14bef85046
@ -26,6 +26,11 @@ interface State {
|
||||
volume: number; // integer between 0 and 1 representing the volume of the player
|
||||
}
|
||||
|
||||
function persistQueue(state: State) {
|
||||
localStorage.setItem('queue', JSON.stringify(state.queue))
|
||||
localStorage.setItem('queueIndex', state.queueIndex.toString())
|
||||
}
|
||||
|
||||
export const playerModule: Module<State, any> = {
|
||||
namespaced: true,
|
||||
state: {
|
||||
@ -69,7 +74,7 @@ export const playerModule: Module<State, any> = {
|
||||
setQueue(state, queue) {
|
||||
state.queue = queue
|
||||
state.queueIndex = -1
|
||||
localStorage.setItem('queue', JSON.stringify(queue))
|
||||
persistQueue(state)
|
||||
},
|
||||
setQueueIndex(state, index) {
|
||||
if (state.queue.length === 0) {
|
||||
@ -78,7 +83,7 @@ export const playerModule: Module<State, any> = {
|
||||
index = Math.max(0, index)
|
||||
index = index < state.queue.length ? index : 0
|
||||
state.queueIndex = index
|
||||
localStorage.setItem('queueIndex', index)
|
||||
persistQueue(state)
|
||||
state.scrobbled = false
|
||||
const track = state.queue[index]
|
||||
audio.src = track.url
|
||||
@ -94,23 +99,25 @@ export const playerModule: Module<State, any> = {
|
||||
},
|
||||
addToQueue(state, tracks) {
|
||||
state.queue.push(...tracks)
|
||||
persistQueue(state)
|
||||
},
|
||||
removeFromQueue(state, index) {
|
||||
state.queue.splice(index, 1)
|
||||
if (index < state.queueIndex) {
|
||||
state.queueIndex--
|
||||
}
|
||||
persistQueue(state)
|
||||
},
|
||||
clearQueue(state) {
|
||||
if (state.queueIndex >= 0) {
|
||||
state.queue = [state.queue[state.queueIndex]]
|
||||
state.queueIndex = 0
|
||||
localStorage.setItem('queue', JSON.stringify(state.queue))
|
||||
localStorage.setItem('queueIndex', '0')
|
||||
persistQueue(state)
|
||||
}
|
||||
},
|
||||
setNextInQueue(state, tracks) {
|
||||
state.queue.splice(state.queueIndex + 1, 0, ...tracks)
|
||||
persistQueue(state)
|
||||
},
|
||||
setCurrentTime(state, value: any) {
|
||||
state.currentTime = value
|
||||
|
Loading…
x
Reference in New Issue
Block a user