X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ffc9666a04b0cef18a15571c1a0f4fdc41e87b75..44821dc84765936ce99fa2d760ef683281f0a578:/src/views-components/context-menu/actions/download-action.tsx diff --git a/src/views-components/context-menu/actions/download-action.tsx b/src/views-components/context-menu/actions/download-action.tsx index 7468954fdd..352f84bd58 100644 --- a/src/views-components/context-menu/actions/download-action.tsx +++ b/src/views-components/context-menu/actions/download-action.tsx @@ -2,11 +2,11 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { ListItemIcon, ListItemText, ListItem } from '@material-ui/core'; import { DownloadIcon } from '../../../components/icon/icon'; -import * as JSZip from 'jszip'; -import * as FileSaver from 'file-saver'; +import JSZip from 'jszip'; +import FileSaver from 'file-saver'; import axios from 'axios'; export const DownloadAction = (props: { href?: any, download?: any, onClick?: () => void, kind?: string, currentCollectionUuid?: string; }) => { @@ -21,33 +21,32 @@ export const DownloadAction = (props: { href?: any, download?: any, onClick?: () return letter !== '/'; }); - filteredFileUrls - .map((href: string) => { - axios.get(href).then(response => response).then(({ data }: any) => { - const splittedByDot = href.split('.'); - if (splittedByDot[splittedByDot.length - 1] !== 'json') { - if (filteredFileUrls.length === id) { - zip.file(download[id - 1], data); - zip.generateAsync({ type: 'blob' }).then((content) => { - FileSaver.saveAs(content, `download-${props.currentCollectionUuid}.zip`); - }); - } else { - zip.file(download[id - 1], data); - zip.generateAsync({ type: 'blob' }); - } + filteredFileUrls.forEach((href: string) => { + axios.get(href).then(response => response).then(({ data }: any) => { + const splittedByDot = href.split('.'); + if (splittedByDot[splittedByDot.length - 1] !== 'json') { + if (filteredFileUrls.length === id) { + zip.file(download[id - 1], data); + zip.generateAsync({ type: 'blob' }).then((content) => { + FileSaver.saveAs(content, `download-${props.currentCollectionUuid}.zip`); + }); } else { - zip.file(download[id - 1], JSON.stringify(data)); + zip.file(download[id - 1], data); zip.generateAsync({ type: 'blob' }); } - id++; - }); + } else { + zip.file(download[id - 1], JSON.stringify(data)); + zip.generateAsync({ type: 'blob' }); + } + id++; }); + }); }; return props.href || props.kind === 'files' ? props.kind === 'files' ? createZip(props.href, props.download) : undefined}>