From 79756b0c1a2adc1431b8b8b86de6adecab7b8da5 Mon Sep 17 00:00:00 2001
From: Simon Malesys <simon.malesys@pasteur.fr>
Date: Thu, 27 Feb 2025 14:29:29 +0100
Subject: [PATCH] Fetch pre-made archives only on dialog open

---
 src/client/components/AppHeader.vue | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/client/components/AppHeader.vue b/src/client/components/AppHeader.vue
index f594cd67..fd3eb4ce 100644
--- a/src/client/components/AppHeader.vue
+++ b/src/client/components/AppHeader.vue
@@ -63,7 +63,7 @@
 </template>
 
 <script setup lang="ts">
-import { computed, onMounted, ref } from 'vue'
+import { computed, onMounted, ref, watch } from 'vue'
 import api from '../api'
 import { useStore } from '../store'
 import AppDialog from './AppDialog.vue'
@@ -72,9 +72,15 @@ const store = useStore()
 const downloadsVisible = ref<boolean>(false)
 const archives = computed(() => store.archives)
 
-onMounted(() => {
-  store.fetchArchives()
-})
+/**
+ * Fetch the list of archives when the dialog is opened.
+ * Do it only once to avoid unnecessary requests.
+ */
+watch(
+  downloadsVisible,
+  () => { store.fetchArchives() },
+  { once: true }
+)
 
 /**
  * Open the dialog.
-- 
GitLab