diff --git a/frontend/composables/useFiles.ts b/frontend/composables/useFiles.ts index cd61936..7abb3dc 100644 --- a/frontend/composables/useFiles.ts +++ b/frontend/composables/useFiles.ts @@ -3,6 +3,16 @@ export const useFiles = () => { const toast = useToast() const auth = useAuthStore() + const config = useRuntimeConfig() + + const resolveFileUrl = (url?: string | null) => { + if (!url || /^(?:https?:|blob:|data:)/i.test(url)) return url + + const apiBase = String(config.public.apiBase || "").replace(/\/+$/, "") + if (!apiBase) return url + + return `${apiBase}/${url.replace(/^\/+/, "")}` + } let bucket = "filesdev" @@ -53,7 +63,7 @@ export const useFiles = () => { return (res.files || []).map((file) => ({ ...file, ...(fileDataById.get(file.id) || {}), - url: file.url + url: resolveFileUrl(file.url) })) } @@ -69,7 +79,10 @@ export const useFiles = () => { console.log(res) - return res.files + return (res.files || []).map((file) => ({ + ...file, + url: resolveFileUrl(file.url) + })) } @@ -89,7 +102,7 @@ export const useFiles = () => { }) const file = res.files?.[0] || null - return file ? {...file, ...(fileData || {}), url: file.url} : null + return file ? {...file, ...(fileData || {}), url: resolveFileUrl(file.url)} : null } const downloadFile = async (id?: string, ids?: string[], returnAsBlob: Boolean = false) => {