Fix:Realtime update filters

This commit is contained in:
advplyr 2021-12-03 17:25:09 -06:00
parent bbcc8fbb91
commit 28d071f574
2 changed files with 46 additions and 3 deletions

View File

@ -153,6 +153,7 @@ export default {
},
audiobookAdded(audiobook) {
// this.$store.commit('audiobooks/addUpdate', audiobook)
this.$store.commit('libraries/updateFilterDataWithAudiobook', audiobook)
},
audiobookUpdated(audiobook) {
if (this.$store.state.selectedAudiobook && this.$store.state.selectedAudiobook.id === audiobook.id) {
@ -161,6 +162,7 @@ export default {
}
// Just triggers the listeners
this.$store.commit('audiobooks/audiobookUpdated', audiobook)
this.$store.commit('libraries/updateFilterDataWithAudiobook', audiobook)
// this.$store.commit('audiobooks/addUpdate', audiobook)
},
audiobookRemoved(audiobook) {
@ -172,9 +174,9 @@ export default {
// this.$store.commit('audiobooks/remove', audiobook)
},
audiobooksAdded(audiobooks) {
// audiobooks.forEach((ab) => {
// this.$store.commit('audiobooks/addUpdate', ab)
// })
audiobooks.forEach((ab) => {
this.audiobookAdded(ab)
})
},
audiobooksUpdated(audiobooks) {
audiobooks.forEach((ab) => {

View File

@ -172,5 +172,46 @@ export const mutations = {
},
setLibraryFilterData(state, filterData) {
state.filterData = filterData
},
updateFilterDataWithAudiobook(state, audiobook) {
if (!audiobook || !audiobook.book || !state.filterData) return
if (state.currentLibraryId !== audiobook.libraryId) return
/*
var filterdata = {
authors: [],
genres: [],
tags: [],
series: [],
narrators: []
}
*/
if (audiobook.book.authorFL) {
audiobook.book.authorFL.split(', ').forEach((author) => {
if (author && !state.filterData.authors.includes(author)) {
state.filterData.authors.push(author)
}
})
}
if (audiobook.book.narratorFL) {
audiobook.book.narratorFL.split(', ').forEach((narrator) => {
if (narrator && !state.filterData.narrators.includes(narrator)) {
state.filterData.narrators.push(narrator)
}
})
}
if (audiobook.book.series && !state.filterData.series.includes(audiobook.book.series)) {
state.filterData.series.push(audiobook.book.series)
}
if (audiobook.tags && audiobook.tags.length) {
audiobook.tags.forEach((tag) => {
if (tag && !state.filterData.tags.includes(tag)) state.filterData.tags.push(tag)
})
}
if (audiobook.book.genres && audiobook.book.genres.length) {
audiobook.book.genres.forEach((genre) => {
if (tag && !state.filterData.genres.includes(genre)) state.filterData.genres.push(genre)
})
}
}
}