Skip to content

Commit

Permalink
fix(files): properly reset preview component
Browse files Browse the repository at this point in the history
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
  • Loading branch information
skjnldsv authored and susnux committed May 21, 2024
1 parent 278aafd commit 9227e69
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
17 changes: 13 additions & 4 deletions apps/files/src/components/FileEntry/FileEntryPreview.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
:class="{'files-list__row-icon-preview--loaded': backgroundFailed === false}"
loading="lazy"
:src="previewUrl"
@error="backgroundFailed = true"
@error="onBackgroundError"
@load="backgroundFailed = false">

<FileIcon v-else v-once />
Expand Down Expand Up @@ -218,12 +218,21 @@ export default Vue.extend({
},
methods: {
// Called from FileEntry
reset() {
if (this.backgroundFailed === true && this.$refs.previewImg) {
// Reset background state to cancel any ongoing requests
this.backgroundFailed = undefined
if (this.$refs.previewImg) {
this.$refs.previewImg.src = ''
}
// Reset background state
this.backgroundFailed = undefined
},
onBackgroundError(event) {
// Do not fail if we just reset the background
if (event.target?.src === '') {
return
}
this.backgroundFailed = true
},
t,
Expand Down
9 changes: 6 additions & 3 deletions apps/files/src/components/FileEntryMixin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,10 @@ export default defineComponent({
* When the source changes, reset the preview
* and fetch the new one.
*/
source() {
this.resetState()
source(a: Node, b: Node) {
if (a.source !== b.source) {
this.resetState()
}
},
},

Expand All @@ -189,7 +191,8 @@ export default defineComponent({
// Reset loading state
this.loading = ''

this.$refs.preview.reset()
// Reset the preview state
this.$refs?.preview?.reset?.()

// Close menu
this.openedMenu = false
Expand Down

0 comments on commit 9227e69

Please sign in to comment.