Skip to content

Commit 8ef0f50

Browse files
committed
fix: invalid keys
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
1 parent 72e3906 commit 8ef0f50

1 file changed

Lines changed: 22 additions & 15 deletions

File tree

src/views/Viewer.vue

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
:data-handler="handlerId">
1111
<component :is="currentFile.modal"
1212
v-if="!currentFile.failed"
13-
:key="currentFile | uniqueKey"
13+
:key="uniqueKey(currentFile)"
1414
ref="content"
1515
:active="true"
1616
:can-swipe="false"
@@ -102,7 +102,7 @@
102102
<!-- COMPARE FILE -->
103103
<div v-if="comparisonFile && !comparisonFile.failed && showComparison" class="viewer__file-wrapper">
104104
<component :is="comparisonFile.modal"
105-
:key="comparisonFile | uniqueKey"
105+
:key="uniqueKey(comparisonFile)"
106106
ref="comparison-content"
107107
v-bind="comparisonFile"
108108
:active="true"
@@ -117,8 +117,8 @@
117117
</div>
118118

119119
<!-- PREVIOUS -->
120-
<div v-if="previousFile"
121-
:key="previousFile | uniqueKey"
120+
<div v-if="hasPreviousFile"
121+
:key="uniqueKey(previousFile)"
122122
class="viewer__file-wrapper viewer__file-wrapper--hidden"
123123
aria-hidden="true"
124124
inert>
@@ -134,7 +134,7 @@
134134
</div>
135135

136136
<!-- CURRENT -->
137-
<div :key="currentFile | uniqueKey" class="viewer__file-wrapper">
137+
<div :key="uniqueKey(currentFile)" class="viewer__file-wrapper">
138138
<component :is="currentFile.modal"
139139
v-if="!currentFile.failed"
140140
ref="content"
@@ -154,8 +154,8 @@
154154
</div>
155155

156156
<!-- NEXT -->
157-
<div v-if="nextFile"
158-
:key="nextFile | uniqueKey"
157+
<div v-if="hasNextFile"
158+
:key="uniqueKey(nextFile)"
159159
class="viewer__file-wrapper viewer__file-wrapper--hidden"
160160
aria-hidden="true"
161161
inert>
@@ -223,12 +223,6 @@ export default defineComponent({
223223
Pencil,
224224
},
225225
226-
filters: {
227-
uniqueKey(file) {
228-
return '' + file.fileid + file.source
229-
},
230-
},
231-
232226
mixins: [isFullscreen, isMobile],
233227
234228
data() {
@@ -319,6 +313,15 @@ export default defineComponent({
319313
return this.currentIndex === this.fileList.length - 1
320314
},
321315
316+
hasPreviousFile() {
317+
// Check if empty object
318+
return Object.keys(this.previousFile).length > 0
319+
},
320+
hasNextFile() {
321+
// Check if empty object
322+
return Object.keys(this.nextFile).length > 0
323+
},
324+
322325
isImage() {
323326
return ['image/jpeg', 'image/png', 'image/webp'].includes(this.currentFile?.mime)
324327
},
@@ -562,6 +565,10 @@ export default defineComponent({
562565
},
563566
564567
methods: {
568+
uniqueKey(file) {
569+
return '' + file.fileid + file.source
570+
},
571+
565572
/**
566573
* If there is no download permission also hide the context menu.
567574
* @param {MouseEvent} event The mouse click event
@@ -773,7 +780,7 @@ export default defineComponent({
773780
}
774781
} else {
775782
// RESET
776-
this.previousFile = null
783+
this.previousFile = {}
777784
}
778785
779786
if (next) {
@@ -783,7 +790,7 @@ export default defineComponent({
783790
}
784791
} else {
785792
// RESET
786-
this.nextFile = null
793+
this.nextFile = {}
787794
}
788795
789796
},

0 commit comments

Comments
 (0)