diff --git a/ui/src/audioplayer/Player.js b/ui/src/audioplayer/Player.js index 4e7071db6..474dd55ee 100644 --- a/ui/src/audioplayer/Player.js +++ b/ui/src/audioplayer/Player.js @@ -17,7 +17,7 @@ const Player = () => { theme: playerTheme, bounds: 'body', mode: 'full', - autoPlay: true, + autoPlay: false, preload: true, autoPlayInitLoadPlayList: true, clearPriorAudioLists: false, @@ -63,7 +63,7 @@ const Player = () => { const addQueueToOptions = (queue) => { return { ...defaultOptions, - autoPlay: true, + autoPlay: queue.playing, clearPriorAudioLists: queue.clear, audioLists: queue.queue.map((item) => item), } @@ -108,7 +108,7 @@ const Player = () => { /> ) } - return
+ return null } export default Player diff --git a/ui/src/audioplayer/queue.js b/ui/src/audioplayer/queue.js index 1843a60e1..c44cd6877 100644 --- a/ui/src/audioplayer/queue.js +++ b/ui/src/audioplayer/queue.js @@ -43,7 +43,7 @@ const scrobbled = (id) => ({ }) const playQueueReducer = ( - previousState = { queue: [], clear: true }, + previousState = { queue: [], clear: true, playing: false }, payload ) => { let queue @@ -52,11 +52,16 @@ const playQueueReducer = ( case PLAYER_ADD_TRACK: queue = previousState.queue queue.push(mapToAudioLists(data)) - return { queue, clear: false } + return { ...previousState, queue, clear: false } case PLAYER_SET_TRACK: - return { queue: [mapToAudioLists(data)], clear: true } + return { + ...previousState, + queue: [mapToAudioLists(data)], + clear: true, + playing: true, + } case PLAYER_SYNC_QUEUE: - return { queue: data, clear: false } + return { ...previousState, queue: data, clear: false } case PLAYER_SCROBBLE: const newQueue = previousState.queue.map((item) => { return { @@ -64,7 +69,7 @@ const playQueueReducer = ( scrobbled: item.scrobbled || item.trackId === data, } }) - return { queue: newQueue, clear: false } + return { ...previousState, queue: newQueue, clear: false, playing: true } case PLAYER_PLAY_ALBUM: queue = [] let match = false @@ -76,7 +81,7 @@ const playQueueReducer = ( queue.push(mapToAudioLists(data[id])) } }) - return { queue, clear: true } + return { ...previousState, queue, clear: true, playing: true } default: return previousState } diff --git a/ui/src/store/createAdminStore.js b/ui/src/store/createAdminStore.js index e07cf8e7f..7c6f493fe 100644 --- a/ui/src/store/createAdminStore.js +++ b/ui/src/store/createAdminStore.js @@ -36,6 +36,8 @@ export default ({ compose const persistedState = loadState() + // TODO Better encapsulate state in general + persistedState.queue.playing = false const store = createStore( resettableAppReducer, persistedState,