X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6e830f14ac2732c6d8661275fff691dd8a6179fa..c1787278642d2ef02234ea27f94aaae9cdd52d40:/src/components/file-upload/file-upload.tsx diff --git a/src/components/file-upload/file-upload.tsx b/src/components/file-upload/file-upload.tsx index 5fb2842805..74efe009e9 100644 --- a/src/components/file-upload/file-upload.tsx +++ b/src/components/file-upload/file-upload.tsx @@ -3,11 +3,18 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { Grid, List, ListItem, ListItemText, StyleRulesCallback, Typography, WithStyles } from '@material-ui/core'; +import { + Grid, + StyleRulesCallback, + Table, TableBody, TableCell, TableHead, TableRow, + Typography, + WithStyles +} from '@material-ui/core'; import { withStyles } from '@material-ui/core'; import Dropzone from 'react-dropzone'; import { CloudUploadIcon } from "../icon/icon"; -import { formatFileSize } from "../../common/formatters"; +import { formatFileSize, formatProgress, formatUploadSpeed } from "~/common/formatters"; +import { UploadFile } from "~/store/collections/uploader/collection-uploader-actions"; type CssRules = "root" | "dropzone" | "container" | "uploadIcon"; @@ -30,34 +37,48 @@ const styles: StyleRulesCallback = theme => ({ }); interface FileUploadProps { - files: File[]; + files: UploadFile[]; + disabled: boolean; onDrop: (files: File[]) => void; } export const FileUpload = withStyles(styles)( - ({ classes, files, onDrop }: FileUploadProps & WithStyles) => + ({ classes, files, disabled, onDrop }: FileUploadProps & WithStyles) => Upload data - onDrop(files)}> - + onDrop(files)} disabled={disabled}> + {files.length === 0 && + - Drag and drop data or browse + Drag and drop data or click to browse - - - {files.map((f, idx) => - - - )} - - - + } + {files.length > 0 && + + + + File name + File size + Upload speed + Upload progress + + + + {files.map(f => + + {f.file.name} + {formatFileSize(f.file.size)} + {formatUploadSpeed(f.prevLoaded, f.loaded, f.prevTime, f.currentTime)} + {formatProgress(f.loaded, f.total)} + + )} + +
+ }
);