Adding progress filter, filter dot, current chapter highlighted

This commit is contained in:
advplyr
2021-09-21 18:32:59 -05:00
parent 9c5f79d54f
commit b8063b8d94
7 changed files with 59 additions and 12 deletions
+11 -5
View File
@@ -17,15 +17,11 @@ export const getters = {
return state.audiobooks.find(ab => ab.id === id)
},
getFiltered: (state, getters, rootState, rootGetters) => () => {
// var isDisc = !rootState.networkConnected || !rootState.socketConnected
// console.log('GET FILETERED', isDisc)
// var filtered = isDisc ? rootGetters['downloads/getAudiobooks'] : state.audiobooks
// console.log('FILTERED LEN', filtered.length)
var filtered = state.audiobooks
var settings = rootState.user.settings || {}
var filterBy = settings.filterBy || ''
var searchGroups = ['genres', 'tags', 'series', 'authors']
var searchGroups = ['genres', 'tags', 'series', 'authors', 'progress']
var group = searchGroups.find(_group => filterBy.startsWith(_group + '.'))
if (group) {
var filter = decode(filterBy.replace(`${group}.`, ''))
@@ -33,6 +29,16 @@ export const getters = {
else if (group === 'tags') filtered = filtered.filter(ab => ab.tags.includes(filter))
else if (group === 'series') filtered = filtered.filter(ab => ab.book && ab.book.series === filter)
else if (group === 'authors') filtered = filtered.filter(ab => ab.book && ab.book.author === filter)
else if (group === 'progress') {
filtered = filtered.filter(ab => {
var userAudiobook = rootGetters['user/getUserAudiobook'](ab.id)
var isRead = userAudiobook && userAudiobook.isRead
if (filter === 'Read' && isRead) return true
if (filter === 'Unread' && !isRead) return true
if (filter === 'In Progress' && (userAudiobook && !userAudiobook.isRead && userAudiobook.progress > 0)) return true
return false
})
}
}
return filtered
},