X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/e83b5a007f55a47a9acfa5c363c3f9f3bc7495de..2b6abd3b7dea25f9b19156bb06b2763b118a67b5:/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 f3b673c7..e6c15144 100644 --- a/src/components/file-upload/file-upload.tsx +++ b/src/components/file-upload/file-upload.tsx @@ -2,8 +2,8 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import * as classnames from 'classnames'; +import React from 'react'; +import classnames from 'classnames'; import { Grid, StyleRulesCallback, @@ -15,8 +15,8 @@ import { import { withStyles } from '@material-ui/core'; import Dropzone from 'react-dropzone'; import { CloudUploadIcon, RemoveIcon } from "../icon/icon"; -import { formatFileSize, formatProgress, formatUploadSpeed } from "~/common/formatters"; -import { UploadFile } from '~/store/file-uploader/file-uploader-actions'; +import { formatFileSize, formatProgress, formatUploadSpeed } from "common/formatters"; +import { UploadFile } from 'store/file-uploader/file-uploader-actions'; type CssRules = "root" | "dropzone" | "dropzoneWrapper" | "container" | "uploadIcon" | "dropzoneBorder" | "dropzoneBorderLeft" | "dropzoneBorderRight" | "dropzoneBorderTop" | "dropzoneBorderBottom" @@ -34,7 +34,8 @@ const styles: StyleRulesCallback = theme => ({ width: "100%", height: "200px", position: "relative", - border: "1px solid rgba(0, 0, 0, 0.42)" + border: "1px solid rgba(0, 0, 0, 0.42)", + boxSizing: 'border-box', }, dropzoneBorder: { content: "", @@ -123,6 +124,17 @@ export const FileUpload = withStyles(styles)( if (!disabled) { onDelete(file); } + + let interval = setInterval(() => { + const key = Object.keys((window as any).cancelTokens).find(key => key.indexOf(file.file.name) > -1); + + if (key) { + clearInterval(interval); + (window as any).cancelTokens[key](); + delete (window as any).cancelTokens[key]; + } + }, 100); + } render() { const { classes, onDrop, disabled, files } = this.props; @@ -140,6 +152,7 @@ export const FileUpload = withStyles(styles)( inputs[0].focus(); } }} + data-cy="drag-and-drop" disabled={disabled} inputProps={{ onFocus: () => {