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
|
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> = {
|
export const playerModule: Module<State, any> = {
|
||||||
namespaced: true,
|
namespaced: true,
|
||||||
state: {
|
state: {
|
||||||
@ -69,7 +74,7 @@ export const playerModule: Module<State, any> = {
|
|||||||
setQueue(state, queue) {
|
setQueue(state, queue) {
|
||||||
state.queue = queue
|
state.queue = queue
|
||||||
state.queueIndex = -1
|
state.queueIndex = -1
|
||||||
localStorage.setItem('queue', JSON.stringify(queue))
|
persistQueue(state)
|
||||||
},
|
},
|
||||||
setQueueIndex(state, index) {
|
setQueueIndex(state, index) {
|
||||||
if (state.queue.length === 0) {
|
if (state.queue.length === 0) {
|
||||||
@ -78,7 +83,7 @@ export const playerModule: Module<State, any> = {
|
|||||||
index = Math.max(0, index)
|
index = Math.max(0, index)
|
||||||
index = index < state.queue.length ? index : 0
|
index = index < state.queue.length ? index : 0
|
||||||
state.queueIndex = index
|
state.queueIndex = index
|
||||||
localStorage.setItem('queueIndex', index)
|
persistQueue(state)
|
||||||
state.scrobbled = false
|
state.scrobbled = false
|
||||||
const track = state.queue[index]
|
const track = state.queue[index]
|
||||||
audio.src = track.url
|
audio.src = track.url
|
||||||
@ -94,23 +99,25 @@ export const playerModule: Module<State, any> = {
|
|||||||
},
|
},
|
||||||
addToQueue(state, tracks) {
|
addToQueue(state, tracks) {
|
||||||
state.queue.push(...tracks)
|
state.queue.push(...tracks)
|
||||||
|
persistQueue(state)
|
||||||
},
|
},
|
||||||
removeFromQueue(state, index) {
|
removeFromQueue(state, index) {
|
||||||
state.queue.splice(index, 1)
|
state.queue.splice(index, 1)
|
||||||
if (index < state.queueIndex) {
|
if (index < state.queueIndex) {
|
||||||
state.queueIndex--
|
state.queueIndex--
|
||||||
}
|
}
|
||||||
|
persistQueue(state)
|
||||||
},
|
},
|
||||||
clearQueue(state) {
|
clearQueue(state) {
|
||||||
if (state.queueIndex >= 0) {
|
if (state.queueIndex >= 0) {
|
||||||
state.queue = [state.queue[state.queueIndex]]
|
state.queue = [state.queue[state.queueIndex]]
|
||||||
state.queueIndex = 0
|
state.queueIndex = 0
|
||||||
localStorage.setItem('queue', JSON.stringify(state.queue))
|
persistQueue(state)
|
||||||
localStorage.setItem('queueIndex', '0')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setNextInQueue(state, tracks) {
|
setNextInQueue(state, tracks) {
|
||||||
state.queue.splice(state.queueIndex + 1, 0, ...tracks)
|
state.queue.splice(state.queueIndex + 1, 0, ...tracks)
|
||||||
|
persistQueue(state)
|
||||||
},
|
},
|
||||||
setCurrentTime(state, value: any) {
|
setCurrentTime(state, value: any) {
|
||||||
state.currentTime = value
|
state.currentTime = value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user