Turn off autoplay when reloading the play queue from the Redux store
This commit is contained in:
@@ -17,7 +17,7 @@ const Player = () => {
|
|||||||
theme: playerTheme,
|
theme: playerTheme,
|
||||||
bounds: 'body',
|
bounds: 'body',
|
||||||
mode: 'full',
|
mode: 'full',
|
||||||
autoPlay: true,
|
autoPlay: false,
|
||||||
preload: true,
|
preload: true,
|
||||||
autoPlayInitLoadPlayList: true,
|
autoPlayInitLoadPlayList: true,
|
||||||
clearPriorAudioLists: false,
|
clearPriorAudioLists: false,
|
||||||
@@ -63,7 +63,7 @@ const Player = () => {
|
|||||||
const addQueueToOptions = (queue) => {
|
const addQueueToOptions = (queue) => {
|
||||||
return {
|
return {
|
||||||
...defaultOptions,
|
...defaultOptions,
|
||||||
autoPlay: true,
|
autoPlay: queue.playing,
|
||||||
clearPriorAudioLists: queue.clear,
|
clearPriorAudioLists: queue.clear,
|
||||||
audioLists: queue.queue.map((item) => item),
|
audioLists: queue.queue.map((item) => item),
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ const Player = () => {
|
|||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
return <div />
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Player
|
export default Player
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const scrobbled = (id) => ({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const playQueueReducer = (
|
const playQueueReducer = (
|
||||||
previousState = { queue: [], clear: true },
|
previousState = { queue: [], clear: true, playing: false },
|
||||||
payload
|
payload
|
||||||
) => {
|
) => {
|
||||||
let queue
|
let queue
|
||||||
@@ -52,11 +52,16 @@ const playQueueReducer = (
|
|||||||
case PLAYER_ADD_TRACK:
|
case PLAYER_ADD_TRACK:
|
||||||
queue = previousState.queue
|
queue = previousState.queue
|
||||||
queue.push(mapToAudioLists(data))
|
queue.push(mapToAudioLists(data))
|
||||||
return { queue, clear: false }
|
return { ...previousState, queue, clear: false }
|
||||||
case PLAYER_SET_TRACK:
|
case PLAYER_SET_TRACK:
|
||||||
return { queue: [mapToAudioLists(data)], clear: true }
|
return {
|
||||||
|
...previousState,
|
||||||
|
queue: [mapToAudioLists(data)],
|
||||||
|
clear: true,
|
||||||
|
playing: true,
|
||||||
|
}
|
||||||
case PLAYER_SYNC_QUEUE:
|
case PLAYER_SYNC_QUEUE:
|
||||||
return { queue: data, clear: false }
|
return { ...previousState, queue: data, clear: false }
|
||||||
case PLAYER_SCROBBLE:
|
case PLAYER_SCROBBLE:
|
||||||
const newQueue = previousState.queue.map((item) => {
|
const newQueue = previousState.queue.map((item) => {
|
||||||
return {
|
return {
|
||||||
@@ -64,7 +69,7 @@ const playQueueReducer = (
|
|||||||
scrobbled: item.scrobbled || item.trackId === data,
|
scrobbled: item.scrobbled || item.trackId === data,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return { queue: newQueue, clear: false }
|
return { ...previousState, queue: newQueue, clear: false, playing: true }
|
||||||
case PLAYER_PLAY_ALBUM:
|
case PLAYER_PLAY_ALBUM:
|
||||||
queue = []
|
queue = []
|
||||||
let match = false
|
let match = false
|
||||||
@@ -76,7 +81,7 @@ const playQueueReducer = (
|
|||||||
queue.push(mapToAudioLists(data[id]))
|
queue.push(mapToAudioLists(data[id]))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return { queue, clear: true }
|
return { ...previousState, queue, clear: true, playing: true }
|
||||||
default:
|
default:
|
||||||
return previousState
|
return previousState
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ export default ({
|
|||||||
compose
|
compose
|
||||||
|
|
||||||
const persistedState = loadState()
|
const persistedState = loadState()
|
||||||
|
// TODO Better encapsulate state in general
|
||||||
|
persistedState.queue.playing = false
|
||||||
const store = createStore(
|
const store = createStore(
|
||||||
resettableAppReducer,
|
resettableAppReducer,
|
||||||
persistedState,
|
persistedState,
|
||||||
|
|||||||
Reference in New Issue
Block a user