diff --git a/components/BackupList.vue b/components/BackupList.vue
index 9dcad3b..63a63ea 100644
--- a/components/BackupList.vue
+++ b/components/BackupList.vue
@@ -22,6 +22,13 @@
+
@@ -55,6 +62,7 @@
import {Icon as IconifyIcon} from "@iconify/vue"
import CircleSkeleton from "~/components/skeleton/CircleSkeleton.vue"
import TextSkeleton from "~/components/skeleton/TextSkeleton.vue"
+import { apiFetch, downloadApiFile } from "~/composables/useApiAuth"
const props = defineProps<{
folder: string | null
@@ -62,31 +70,42 @@ const props = defineProps<{
const backups = ref([])
const loading = ref(false)
+const errorMessage = ref("")
const title = computed(() => {
if (!props.folder) return "Fichiers"
return `Backup — ${props.folder.toUpperCase()}`
})
-const downloadBackup = (file: string) => {
+const downloadBackup = async (file: string) => {
if (!props.folder) return
const url = `/api/download?folder=${encodeURIComponent(props.folder)}&file=${encodeURIComponent(file)}`
- window.location.href = url
+ errorMessage.value = ""
+
+ try {
+ await downloadApiFile(url, file)
+ } catch (error) {
+ console.error("Erreur telechargement backup:", error)
+ errorMessage.value = "Erreur lors de l'opération"
+ }
}
watch(() => props.folder, async (folder) => {
if (!folder) {
loading.value = false
backups.value = []
+ errorMessage.value = ""
return
}
loading.value = true
+ errorMessage.value = ""
try {
- const data = await $fetch(`/api/backups?folder=${encodeURIComponent(folder)}`)
+ const data = await apiFetch(`/api/backups?folder=${encodeURIComponent(folder)}`)
backups.value = data
} catch (error) {
console.error("Erreur récupération backups:", error)
backups.value = []
+ errorMessage.value = "Erreur lors de l'opération"
} finally {
loading.value = false
}
@@ -120,6 +139,12 @@ watch(() => props.folder, async (folder) => {
padding: 2.5rem 1rem;
}
+.error-state {
+ border-radius: 8px;
+ border: 1px solid rgb(var(--m-error) / 0.12);
+ background: rgb(var(--m-error) / 0.06);
+}
+
.file-list {
display: flex;
flex-direction: column;
diff --git a/components/BackupRun.vue b/components/BackupRun.vue
index c05ed58..d3eb365 100644
--- a/components/BackupRun.vue
+++ b/components/BackupRun.vue
@@ -79,6 +79,7 @@
@@ -13,7 +18,14 @@ const { data: messages } = await useFetch('/api/discord/messages')
Messages
-
+
+
+
+ Erreur lors de l'opération
+
+
+
+
Aucun message
@@ -74,6 +86,12 @@ const { data: messages } = await useFetch('/api/discord/messages')
padding: 2rem 1rem;
}
+.error-state {
+ border-radius: 8px;
+ border: 1px solid rgb(var(--m-error) / 0.12);
+ background: rgb(var(--m-error) / 0.06);
+}
+
.message-list {
display: flex;
flex-direction: column;
diff --git a/components/Speed-test.vue b/components/Speed-test.vue
index 56eec7c..8e0501b 100644
--- a/components/Speed-test.vue
+++ b/components/Speed-test.vue
@@ -36,17 +36,23 @@
+
+