diff options
author | Louis Chemineau <louis@chmn.me> | 2023-06-28 16:44:12 +0200 |
---|---|---|
committer | Louis Chemineau <louis@chmn.me> | 2023-07-03 11:04:57 +0200 |
commit | 2e7d7042a7fc97ab42b2be33500d0b554dd581f3 (patch) | |
tree | 81265b349b883537d1447c9b0ec0b69416ac9ad9 /apps/files_versions | |
parent | b164af46c73387d05f5c67126de51e4d0fc2750f (diff) | |
download | nextcloud-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.vue | 11 | ||||
-rw-r--r-- | apps/files_versions/src/files_versions_tab.js | 3 | ||||
-rw-r--r-- | apps/files_versions/src/views/VersionTab.vue | 9 |
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() { |