2022-03-23 17:59:14 -05:00
|
|
|
export const state = () => ({
|
2022-04-07 18:46:58 -05:00
|
|
|
itemDownloads: []
|
2022-03-23 17:59:14 -05:00
|
|
|
})
|
|
|
|
|
|
|
|
export const getters = {
|
2022-04-07 18:46:58 -05:00
|
|
|
getDownloadItem: state => libraryItemId => {
|
|
|
|
return state.itemDownloads.find(i => i.id == libraryItemId)
|
|
|
|
},
|
2022-03-23 17:59:14 -05:00
|
|
|
getLibraryItemCoverSrc: (state, getters, rootState, rootGetters) => (libraryItem, placeholder = '/book_placeholder.jpg') => {
|
|
|
|
if (!libraryItem) return placeholder
|
|
|
|
var media = libraryItem.media
|
|
|
|
if (!media || !media.coverPath || media.coverPath === placeholder) return placeholder
|
|
|
|
|
|
|
|
// Absolute URL covers (should no longer be used)
|
|
|
|
if (media.coverPath.startsWith('http:') || media.coverPath.startsWith('https:')) return media.coverPath
|
|
|
|
|
|
|
|
var userToken = rootGetters['user/getToken']
|
|
|
|
var lastUpdate = libraryItem.updatedAt || Date.now()
|
|
|
|
|
|
|
|
if (process.env.NODE_ENV !== 'production') { // Testing
|
|
|
|
// return `http://localhost:3333/api/items/${libraryItem.id}/cover?token=${userToken}&ts=${lastUpdate}`
|
|
|
|
}
|
|
|
|
|
2022-04-03 14:24:17 -05:00
|
|
|
var url = new URL(`/api/items/${libraryItem.id}/cover`, rootGetters['user/getServerAddress'])
|
2022-03-23 17:59:14 -05:00
|
|
|
return `${url}?token=${userToken}&ts=${lastUpdate}`
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export const actions = {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
export const mutations = {
|
2022-04-07 18:46:58 -05:00
|
|
|
addUpdateItemDownload(state, downloadItem) {
|
|
|
|
var index = state.itemDownloads.findIndex(i => i.id == downloadItem.id)
|
|
|
|
if (index >= 0) {
|
|
|
|
state.itemDownloads.splice(index, 1, downloadItem)
|
|
|
|
} else {
|
|
|
|
state.itemDownloads.push(downloadItem)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
removeItemDownload(state, id) {
|
|
|
|
state.itemDownloads = state.itemDownloads.filter(i => i.id != id)
|
|
|
|
}
|
2022-03-23 17:59:14 -05:00
|
|
|
}
|