Update:Add libraries playlists API endpoint, add lazy playlists card

This commit is contained in:
advplyr 2022-11-26 17:24:46 -06:00
parent 0979b3e03d
commit 7e171576e0
13 changed files with 207 additions and 39 deletions

View file

@ -12,7 +12,8 @@ export const state = () => ({
seriesSortBy: 'name',
seriesSortDesc: false,
seriesFilterBy: 'all',
collections: []
collections: [],
userPlaylists: []
})
export const getters = {
@ -102,6 +103,8 @@ export const actions = {
return false
}
const libraryChanging = state.currentLibraryId !== libraryId
return this.$axios
.$get(`/api/libraries/${libraryId}?include=filterdata`)
.then((data) => {
@ -115,7 +118,10 @@ export const actions = {
commit('setLibraryIssues', issues)
commit('setLibraryFilterData', filterData)
commit('setCurrentLibrary', libraryId)
commit('setCollections', [])
if (libraryChanging) {
commit('setCollections', [])
commit('setUserPlaylists', [])
}
return data
})
.catch((error) => {
@ -320,5 +326,19 @@ export const mutations = {
},
removeCollection(state, collection) {
state.collections = state.collections.filter(c => c.id !== collection.id)
},
setUserPlaylists(state, playlists) {
state.userPlaylists = playlists
},
addUpdateUserPlaylist(state, playlist) {
const index = state.userPlaylists.findIndex(p => p.id === playlist.id)
if (index >= 0) {
state.userPlaylists.splice(index, 1, playlist)
} else {
state.userPlaylists.push(playlist)
}
},
removeUserPlaylist(state, playlist) {
state.userPlaylists = state.userPlaylists.filter(p => p.id !== playlist.id)
}
}

View file

@ -9,8 +9,7 @@ export const state = () => ({
collapseSeries: false,
collapseBookSeries: false
},
settingsListeners: [],
playlists: []
settingsListeners: []
})
export const getters = {
@ -164,19 +163,5 @@ export const mutations = {
},
removeSettingsListener(state, listenerId) {
state.settingsListeners = state.settingsListeners.filter(l => l.id !== listenerId)
},
setPlaylists(state, playlists) {
state.playlists = playlists
},
addUpdatePlaylist(state, playlist) {
const indexOf = state.playlists.findIndex(p => p.id == playlist.id)
if (indexOf >= 0) {
state.playlists.splice(indexOf, 1, playlist)
} else {
state.playlists.push(playlist)
}
},
removePlaylist(state, playlist) {
state.playlists = state.playlists.filter(p => p.id !== playlist.id)
}
}