mirror of
https://github.com/navidrome/navidrome.git
synced 2025-05-31 23:59:35 +03:00
Simplify PlayQueue store
This commit is contained in:
parent
804d969427
commit
1686e358fe
5
ui/package-lock.json
generated
5
ui/package-lock.json
generated
@ -10435,6 +10435,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||||
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
|
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
|
||||||
},
|
},
|
||||||
|
"lodash.pick": {
|
||||||
|
"version": "4.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
|
||||||
|
"integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM="
|
||||||
|
},
|
||||||
"lodash.sortby": {
|
"lodash.sortby": {
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
"deepmerge": "^4.2.2",
|
"deepmerge": "^4.2.2",
|
||||||
"jwt-decode": "^2.2.0",
|
"jwt-decode": "^2.2.0",
|
||||||
"lodash.get": "^4.4.2",
|
"lodash.get": "^4.4.2",
|
||||||
|
"lodash.pick": "^4.4.0",
|
||||||
"lodash.throttle": "^4.1.1",
|
"lodash.throttle": "^4.1.1",
|
||||||
"md5-hex": "^3.0.1",
|
"md5-hex": "^3.0.1",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
|
@ -83,7 +83,7 @@ const Player = () => {
|
|||||||
const addQueueToOptions = (queue) => {
|
const addQueueToOptions = (queue) => {
|
||||||
return {
|
return {
|
||||||
...defaultOptions,
|
...defaultOptions,
|
||||||
autoPlay: queue.playing,
|
autoPlay: false,
|
||||||
clearPriorAudioLists: queue.clear,
|
clearPriorAudioLists: queue.clear,
|
||||||
audioLists: queue.queue.map((item) => item),
|
audioLists: queue.queue.map((item) => item),
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ const currentPlaying = (audioInfo) => ({
|
|||||||
data: audioInfo,
|
data: audioInfo,
|
||||||
})
|
})
|
||||||
|
|
||||||
const initialState = { queue: [], clear: true, playing: false, current: {} }
|
const initialState = { queue: [], clear: true, current: {} }
|
||||||
|
|
||||||
const playQueueReducer = (previousState = initialState, payload) => {
|
const playQueueReducer = (previousState = initialState, payload) => {
|
||||||
let queue, current
|
let queue, current
|
||||||
@ -130,7 +130,6 @@ const playQueueReducer = (previousState = initialState, payload) => {
|
|||||||
...previousState,
|
...previousState,
|
||||||
queue: [mapToAudioLists(data)],
|
queue: [mapToAudioLists(data)],
|
||||||
clear: true,
|
clear: true,
|
||||||
playing: true,
|
|
||||||
}
|
}
|
||||||
case PLAYER_SYNC_QUEUE:
|
case PLAYER_SYNC_QUEUE:
|
||||||
current = data.length > 0 ? previousState.current : {}
|
current = data.length > 0 ? previousState.current : {}
|
||||||
@ -152,7 +151,6 @@ const playQueueReducer = (previousState = initialState, payload) => {
|
|||||||
...previousState,
|
...previousState,
|
||||||
queue: newQueue,
|
queue: newQueue,
|
||||||
clear: false,
|
clear: false,
|
||||||
playing: true,
|
|
||||||
}
|
}
|
||||||
case PLAYER_PLAY_TRACKS:
|
case PLAYER_PLAY_TRACKS:
|
||||||
queue = []
|
queue = []
|
||||||
@ -169,7 +167,6 @@ const playQueueReducer = (previousState = initialState, payload) => {
|
|||||||
...previousState,
|
...previousState,
|
||||||
queue,
|
queue,
|
||||||
clear: true,
|
clear: true,
|
||||||
playing: true,
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return previousState
|
return previousState
|
||||||
|
@ -4,6 +4,7 @@ import createSagaMiddleware from 'redux-saga'
|
|||||||
import { all, fork } from 'redux-saga/effects'
|
import { all, fork } from 'redux-saga/effects'
|
||||||
import { adminReducer, adminSaga, USER_LOGOUT } from 'react-admin'
|
import { adminReducer, adminSaga, USER_LOGOUT } from 'react-admin'
|
||||||
import throttle from 'lodash.throttle'
|
import throttle from 'lodash.throttle'
|
||||||
|
import pick from 'lodash.pick'
|
||||||
import { loadState, saveState } from './persistState'
|
import { loadState, saveState } from './persistState'
|
||||||
|
|
||||||
export default ({
|
export default ({
|
||||||
@ -36,10 +37,6 @@ export default ({
|
|||||||
compose
|
compose
|
||||||
|
|
||||||
const persistedState = loadState()
|
const persistedState = loadState()
|
||||||
// TODO Better encapsulate state in general
|
|
||||||
if (persistedState && persistedState.queue) {
|
|
||||||
persistedState.queue.playing = false
|
|
||||||
}
|
|
||||||
const store = createStore(
|
const store = createStore(
|
||||||
resettableAppReducer,
|
resettableAppReducer,
|
||||||
persistedState,
|
persistedState,
|
||||||
@ -51,7 +48,7 @@ export default ({
|
|||||||
const state = store.getState()
|
const state = store.getState()
|
||||||
saveState({
|
saveState({
|
||||||
theme: state.theme,
|
theme: state.theme,
|
||||||
queue: state.queue,
|
queue: pick(state.queue, ['queue']),
|
||||||
albumView: state.albumView,
|
albumView: state.albumView,
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user