mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Fix:Realtime update cover on cover tab in item edit modal
This commit is contained in:
		
							parent
							
								
									b108f2241b
								
							
						
					
					
						commit
						9c65d655b8
					
				@ -1,8 +1,8 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="w-full h-full overflow-hidden overflow-y-auto px-2 sm:px-4 py-6 relative">
 | 
					  <div class="w-full h-full overflow-hidden overflow-y-auto px-2 sm:px-4 py-6 relative">
 | 
				
			||||||
    <div class="flex flex-wrap">
 | 
					    <div class="flex flex-wrap mb-4">
 | 
				
			||||||
      <div class="relative">
 | 
					      <div class="relative">
 | 
				
			||||||
        <covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](libraryItemId, null, true)" :width="120" :book-cover-aspect-ratio="bookCoverAspectRatio" />
 | 
					        <covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](libraryItemId, libraryItemUpdatedAt, true)" :width="120" :book-cover-aspect-ratio="bookCoverAspectRatio" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- book cover overlay -->
 | 
					        <!-- book cover overlay -->
 | 
				
			||||||
        <div v-if="media.coverPath" class="absolute top-0 left-0 w-full h-full z-10 opacity-0 hover:opacity-100 transition-opacity duration-100">
 | 
					        <div v-if="media.coverPath" class="absolute top-0 left-0 w-full h-full z-10 opacity-0 hover:opacity-100 transition-opacity duration-100">
 | 
				
			||||||
@ -139,16 +139,19 @@ export default {
 | 
				
			|||||||
      return this.$store.getters['libraries/getBookCoverAspectRatio']
 | 
					      return this.$store.getters['libraries/getBookCoverAspectRatio']
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    libraryItemId() {
 | 
					    libraryItemId() {
 | 
				
			||||||
      return this.libraryItem ? this.libraryItem.id : null
 | 
					      return this.libraryItem?.id || null
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    libraryItemUpdatedAt() {
 | 
				
			||||||
 | 
					      return this.libraryItem?.updatedAt || null
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    mediaType() {
 | 
					    mediaType() {
 | 
				
			||||||
      return this.libraryItem ? this.libraryItem.mediaType : null
 | 
					      return this.libraryItem?.mediaType || null
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    isPodcast() {
 | 
					    isPodcast() {
 | 
				
			||||||
      return this.mediaType == 'podcast'
 | 
					      return this.mediaType == 'podcast'
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    media() {
 | 
					    media() {
 | 
				
			||||||
      return this.libraryItem ? this.libraryItem.media || {} : {}
 | 
					      return this.libraryItem?.media || {}
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    coverPath() {
 | 
					    coverPath() {
 | 
				
			||||||
      return this.media.coverPath
 | 
					      return this.media.coverPath
 | 
				
			||||||
@ -157,7 +160,7 @@ export default {
 | 
				
			|||||||
      return this.media.metadata || {}
 | 
					      return this.media.metadata || {}
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    libraryFiles() {
 | 
					    libraryFiles() {
 | 
				
			||||||
      return this.libraryItem ? this.libraryItem.libraryFiles || [] : []
 | 
					      return this.libraryItem?.libraryFiles || []
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    userCanUpload() {
 | 
					    userCanUpload() {
 | 
				
			||||||
      return this.$store.getters['user/getUserCanUpload']
 | 
					      return this.$store.getters['user/getUserCanUpload']
 | 
				
			||||||
 | 
				
			|||||||
@ -83,8 +83,8 @@ export const getters = {
 | 
				
			|||||||
  getLibraryItemCoverSrc: (state, getters, rootState, rootGetters) => (libraryItem, placeholder = null) => {
 | 
					  getLibraryItemCoverSrc: (state, getters, rootState, rootGetters) => (libraryItem, placeholder = null) => {
 | 
				
			||||||
    if (!placeholder) placeholder = `${rootState.routerBasePath}/book_placeholder.jpg`
 | 
					    if (!placeholder) placeholder = `${rootState.routerBasePath}/book_placeholder.jpg`
 | 
				
			||||||
    if (!libraryItem) return placeholder
 | 
					    if (!libraryItem) return placeholder
 | 
				
			||||||
    var media = libraryItem.media
 | 
					    const media = libraryItem.media
 | 
				
			||||||
    if (!media || !media.coverPath || media.coverPath === placeholder) return placeholder
 | 
					    if (!media?.coverPath || media.coverPath === placeholder) return placeholder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Absolute URL covers (should no longer be used)
 | 
					    // Absolute URL covers (should no longer be used)
 | 
				
			||||||
    if (media.coverPath.startsWith('http:') || media.coverPath.startsWith('https:')) return media.coverPath
 | 
					    if (media.coverPath.startsWith('http:') || media.coverPath.startsWith('https:')) return media.coverPath
 | 
				
			||||||
@ -99,14 +99,14 @@ export const getters = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}&ts=${lastUpdate}`
 | 
					    return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}&ts=${lastUpdate}`
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  getLibraryItemCoverSrcById: (state, getters, rootState, rootGetters) => (libraryItemId, placeholder = null, raw = false) => {
 | 
					  getLibraryItemCoverSrcById: (state, getters, rootState, rootGetters) => (libraryItemId, timestamp = null, raw = false) => {
 | 
				
			||||||
    if (!placeholder) placeholder = `${rootState.routerBasePath}/book_placeholder.jpg`
 | 
					    const placeholder = `${rootState.routerBasePath}/book_placeholder.jpg`
 | 
				
			||||||
    if (!libraryItemId) return placeholder
 | 
					    if (!libraryItemId) return placeholder
 | 
				
			||||||
    var 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' : ''}`
 | 
					      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' : ''}`
 | 
					    return `${rootState.routerBasePath}/api/items/${libraryItemId}/cover?token=${userToken}${raw ? '&raw=1' : ''}${timestamp ? `&ts=${timestamp}` : ''}`
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  getIsBatchSelectingMediaItems: (state) => {
 | 
					  getIsBatchSelectingMediaItems: (state) => {
 | 
				
			||||||
    return state.selectedMediaItems.length
 | 
					    return state.selectedMediaItems.length
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user