From 9071734ced85a344d50c063c9b50931aae928753 Mon Sep 17 00:00:00 2001 From: seliayeu Date: Sun, 25 Jun 2023 18:33:54 -0600 Subject: [PATCH] add longer timeout on directory, add toast for zipping folders --- src/components/FileViewer/FileViewer.tsx | 7 ++++++- src/utils/apis.ts | 8 +++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/components/FileViewer/FileViewer.tsx b/src/components/FileViewer/FileViewer.tsx index 4f0cd470..b9a5d928 100644 --- a/src/components/FileViewer/FileViewer.tsx +++ b/src/components/FileViewer/FileViewer.tsx @@ -208,7 +208,12 @@ export default function FileViewer() { if (!tickedFiles) return; for (const file of tickedFiles) { - downloadInstanceFile(instance.uuid, file); + const timeout = file?.file_type == 'Directory' ? 60000 : 5000; + if (file.file_type === 'Directory') { + toast.info('Zipping directory for download...'); + } + + downloadInstanceFile(instance.uuid, file, timeout); tickFile(file, false); } }; diff --git a/src/utils/apis.ts b/src/utils/apis.ts index 98ba7e50..a68c2f77 100644 --- a/src/utils/apis.ts +++ b/src/utils/apis.ts @@ -120,19 +120,21 @@ export const deleteInstanceDirectory = async ( export const requestInstanceFileUrl = async ( uuid: string, - file: ClientFile + file: ClientFile, + timeout = 5000, ): Promise => { const tokenResponse = await axiosWrapper({ method: 'get', url: `/instance/${uuid}/fs/${Base64.encode(file.path, true)}/url`, + timeout: timeout, }); return axios.defaults.baseURL + `/file/${tokenResponse}`; }; -export const downloadInstanceFile = async (uuid: string, file: ClientFile) => { +export const downloadInstanceFile = async (uuid: string, file: ClientFile, timeout = 5000) => { // TODO handle errors - window.open(await requestInstanceFileUrl(uuid, file), '_blank'); + window.open(await requestInstanceFileUrl(uuid, file, timeout), '_blank'); }; export const uploadInstanceFiles = async (