Fix:Fullscreen cover image modal not updating when changing covers #2900

This commit is contained in:
advplyr 2024-05-02 17:48:50 -05:00
parent 410801347c
commit bf3db1dae0
3 changed files with 46 additions and 42 deletions

View File

@ -101,9 +101,14 @@ export default {
}, },
fullCoverUrl() { fullCoverUrl() {
if (!this.libraryItem) return null if (!this.libraryItem) return null
var store = this.$store || this.$nuxt.$store const store = this.$store || this.$nuxt.$store
return store.getters['globals/getLibraryItemCoverSrc'](this.libraryItem, this.placeholderUrl) return store.getters['globals/getLibraryItemCoverSrc'](this.libraryItem, this.placeholderUrl)
}, },
rawCoverUrl() {
if (!this.libraryItem) return null
const store = this.$store || this.$nuxt.$store
return store.getters['globals/getLibraryItemCoverSrc'](this.libraryItem, this.placeholderUrl, true)
},
cover() { cover() {
return this.media.coverPath || this.placeholderUrl return this.media.coverPath || this.placeholderUrl
}, },
@ -126,9 +131,6 @@ export default {
authorBottom() { authorBottom() {
return 0.75 * this.sizeMultiplier return 0.75 * this.sizeMultiplier
}, },
userToken() {
return this.$store.getters['user/getToken']
},
resolution() { resolution() {
return `${this.naturalWidth}x${this.naturalHeight}px` return `${this.naturalWidth}x${this.naturalHeight}px`
} }
@ -136,7 +138,7 @@ export default {
methods: { methods: {
clickCover() { clickCover() {
if (this.expandOnClick && this.libraryItem) { if (this.expandOnClick && this.libraryItem) {
this.$store.commit('globals/setRawCoverPreviewModal', this.libraryItem.id) this.$store.commit('globals/setRawCoverPreviewModal', this.rawCoverUrl)
} }
}, },
setCoverBg() { setCoverBg() {

View File

@ -20,11 +20,8 @@ export default {
this.$store.commit('globals/setShowRawCoverPreviewModal', val) this.$store.commit('globals/setShowRawCoverPreviewModal', val)
} }
}, },
selectedLibraryItemId() {
return this.$store.state.globals.selectedLibraryItemId
},
rawCoverUrl() { rawCoverUrl() {
return this.$store.getters['globals/getLibraryItemCoverSrcById'](this.selectedLibraryItemId, null, true) return this.$store.state.globals.selectedRawCoverUrl
} }
}, },
methods: {}, methods: {},

View File

@ -21,7 +21,7 @@ export const state = () => ({
selectedCollection: null, selectedCollection: null,
selectedAuthor: null, selectedAuthor: null,
selectedMediaItems: [], selectedMediaItems: [],
selectedLibraryItemId: null, selectedRawCoverUrl: null,
isCasting: false, // Actively casting isCasting: false, // Actively casting
isChromecastInitialized: false, // Script loadeds isChromecastInitialized: false, // Script loadeds
showBatchQuickMatchModal: false, showBatchQuickMatchModal: false,
@ -82,7 +82,9 @@ export const state = () => ({
}) })
export const getters = { export const getters = {
getLibraryItemCoverSrc: (state, getters, rootState, rootGetters) => (libraryItem, placeholder = null, raw = false) => { getLibraryItemCoverSrc:
(state, getters, rootState, rootGetters) =>
(libraryItem, placeholder = null, raw = false) => {
if (!placeholder) placeholder = `${rootState.routerBasePath}/book_placeholder.jpg` if (!placeholder) placeholder = `${rootState.routerBasePath}/book_placeholder.jpg`
if (!libraryItem) return placeholder if (!libraryItem) return placeholder
const media = libraryItem.media const media = libraryItem.media
@ -95,17 +97,21 @@ export const getters = {
const lastUpdate = libraryItem.updatedAt || Date.now() const lastUpdate = libraryItem.updatedAt || Date.now()
const libraryItemId = libraryItem.libraryItemId || libraryItem.id // Workaround for /users/:id page showing media progress covers const libraryItemId = libraryItem.libraryItemId || libraryItem.id // Workaround for /users/:id page showing media progress covers
if (process.env.NODE_ENV !== 'production') { // Testing if (process.env.NODE_ENV !== 'production') {
// Testing
return `http://localhost:3333${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}&ts=${lastUpdate}${raw ? '&raw=1' : ''}` return `http://localhost:3333${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}&ts=${lastUpdate}${raw ? '&raw=1' : ''}`
} }
return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}&ts=${lastUpdate}${raw ? '&raw=1' : ''}` return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}&ts=${lastUpdate}${raw ? '&raw=1' : ''}`
}, },
getLibraryItemCoverSrcById: (state, getters, rootState, rootGetters) => (libraryItemId, timestamp = null, raw = false) => { getLibraryItemCoverSrcById:
(state, getters, rootState, rootGetters) =>
(libraryItemId, timestamp = null, raw = false) => {
const placeholder = `${rootState.routerBasePath}/book_placeholder.jpg` const placeholder = `${rootState.routerBasePath}/book_placeholder.jpg`
if (!libraryItemId) return placeholder if (!libraryItemId) return placeholder
const userToken = rootGetters['user/getToken'] const userToken = rootGetters['user/getToken']
if (process.env.NODE_ENV !== 'production') { // Testing if (process.env.NODE_ENV !== 'production') {
// Testing
return `http://localhost:3333${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}${raw ? '&raw=1' : ''}${timestamp ? `&ts=${timestamp}` : ''}` return `http://localhost:3333${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}${raw ? '&raw=1' : ''}${timestamp ? `&ts=${timestamp}` : ''}`
} }
return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}${raw ? '&raw=1' : ''}${timestamp ? `&ts=${timestamp}` : ''}` return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}${raw ? '&raw=1' : ''}${timestamp ? `&ts=${timestamp}` : ''}`
@ -161,8 +167,8 @@ export const mutations = {
setShowRawCoverPreviewModal(state, val) { setShowRawCoverPreviewModal(state, val) {
state.showRawCoverPreviewModal = val state.showRawCoverPreviewModal = val
}, },
setRawCoverPreviewModal(state, libraryItemId) { setRawCoverPreviewModal(state, rawCoverUrl) {
state.selectedLibraryItemId = libraryItemId state.selectedRawCoverUrl = rawCoverUrl
state.showRawCoverPreviewModal = true state.showRawCoverPreviewModal = true
}, },
setEditCollection(state, collection) { setEditCollection(state, collection) {
@ -202,17 +208,16 @@ export const mutations = {
state.selectedMediaItems = [] state.selectedMediaItems = []
}, },
toggleMediaItemSelected(state, item) { toggleMediaItemSelected(state, item) {
if (state.selectedMediaItems.some(i => i.id === item.id)) { if (state.selectedMediaItems.some((i) => i.id === item.id)) {
state.selectedMediaItems = state.selectedMediaItems.filter(i => i.id !== item.id) state.selectedMediaItems = state.selectedMediaItems.filter((i) => i.id !== item.id)
} else { } else {
state.selectedMediaItems.push(item) state.selectedMediaItems.push(item)
} }
}, },
setMediaItemSelected(state, { item, selected }) { setMediaItemSelected(state, { item, selected }) {
const isAlreadySelected = state.selectedMediaItems.some(i => i.id === item.id) const isAlreadySelected = state.selectedMediaItems.some((i) => i.id === item.id)
if (isAlreadySelected && !selected) { if (isAlreadySelected && !selected) {
state.selectedMediaItems = state.selectedMediaItems.filter(i => i.id !== item.id) state.selectedMediaItems = state.selectedMediaItems.filter((i) => i.id !== item.id)
} else if (selected && !isAlreadySelected) { } else if (selected && !isAlreadySelected) {
state.selectedMediaItems.push(item) state.selectedMediaItems.push(item)
} }