aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_versions
diff options
context:
space:
mode:
authorLouis Chemineau <louis@chmn.me>2023-06-28 16:44:12 +0200
committerLouis Chemineau <louis@chmn.me>2023-07-03 11:04:57 +0200
commit2e7d7042a7fc97ab42b2be33500d0b554dd581f3 (patch)
tree81265b349b883537d1447c9b0ec0b69416ac9ad9 /apps/files_versions
parentb164af46c73387d05f5c67126de51e4d0fc2750f (diff)
downloadnextcloud-server-2e7d7042a7fc97ab42b2be33500d0b554dd581f3.tar.gz
nextcloud-server-2e7d7042a7fc97ab42b2be33500d0b554dd581f3.zip
Do not load preview if version tab is not active
Signed-off-by: Louis Chemineau <louis@chmn.me>
Diffstat (limited to 'apps/files_versions')
-rw-r--r--apps/files_versions/src/components/Version.vue11
-rw-r--r--apps/files_versions/src/files_versions_tab.js3
-rw-r--r--apps/files_versions/src/views/VersionTab.vue9
3 files changed, 20 insertions, 3 deletions
diff --git a/apps/files_versions/src/components/Version.vue b/apps/files_versions/src/components/Version.vue
index 8bf9c0ae8cb..a801c6beac8 100644
--- a/apps/files_versions/src/components/Version.vue
+++ b/apps/files_versions/src/components/Version.vue
@@ -23,14 +23,15 @@
:force-display-actions="true"
data-files-versions-version>
<template #icon>
- <img v-if="(isCurrent || version.hasPreview) && !previewError"
+ <div v-if="!(loadPreview || previewLoaded)" class="version__image" />
+ <img v-else-if="isCurrent || version.hasPreview"
:src="previewURL"
alt=""
decoding="async"
fetchpriority="low"
loading="lazy"
class="version__image"
- @error="previewError = true">
+ @load="previewLoaded = true">
<div v-else
class="version__image">
<ImageOffOutline :size="20" />
@@ -179,13 +180,17 @@ export default {
type: Boolean,
default: false,
},
+ loadPreview: {
+ type: Boolean,
+ default: false,
+ },
},
data() {
return {
+ previewLoaded: false,
showVersionLabelForm: false,
formVersionLabelValue: this.version.label,
capabilities: loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }),
- previewError: false,
}
},
computed: {
diff --git a/apps/files_versions/src/files_versions_tab.js b/apps/files_versions/src/files_versions_tab.js
index 225add57252..8b816746401 100644
--- a/apps/files_versions/src/files_versions_tab.js
+++ b/apps/files_versions/src/files_versions_tab.js
@@ -59,6 +59,9 @@ window.addEventListener('DOMContentLoaded', function() {
update(fileInfo) {
TabInstance.update(fileInfo)
},
+ setIsActive(isActive) {
+ TabInstance.setIsActive(isActive)
+ },
destroy() {
TabInstance.$destroy()
TabInstance = null
diff --git a/apps/files_versions/src/views/VersionTab.vue b/apps/files_versions/src/views/VersionTab.vue
index 04b6ecf1add..6d3b07c2f88 100644
--- a/apps/files_versions/src/views/VersionTab.vue
+++ b/apps/files_versions/src/views/VersionTab.vue
@@ -19,6 +19,7 @@
<ul data-files-versions-versions-list>
<Version v-for="version in orderedVersions"
:key="version.mtime"
+ :load-preview="isActive"
:version="version"
:file-info="fileInfo"
:is-current="version.mtime === fileInfo.mtime"
@@ -42,6 +43,7 @@ export default {
data() {
return {
fileInfo: null,
+ isActive: false,
/** @type {import('../utils/versions.js').Version[]} */
versions: [],
loading: false,
@@ -90,6 +92,13 @@ export default {
},
/**
+ * @param {boolean} isActive whether the tab is active
+ */
+ async setIsActive(isActive) {
+ this.isActive = isActive
+ },
+
+ /**
* Get the existing versions infos
*/
async fetchVersions() {