15
15
// limitations under the License.
16
16
17
17
import React , { useState } from 'react' ;
18
- import './FileUploadQueue.scss' ;
19
- import { Tooltip } from 'antd' ;
20
18
import CloseIcon from '../../components/icons/CloseIcon' ;
21
19
import { i18nReact } from '../../utils/i18nReact' ;
22
- import formatBytes from '../../utils/formatBytes' ;
23
- import StatusPendingIcon from '@cloudera/cuix-core/icons/react/StatusPendingIcon' ;
24
- import StatusInProgressIcon from '@cloudera/cuix-core/icons/react/StatusInProgressIcon' ;
25
- import StatusSuccessIcon from '@cloudera/cuix-core/icons/react/StatusSuccessIcon' ;
26
- import StatusStoppedIcon from '@cloudera/cuix-core/icons/react/StatusStoppedIcon' ;
27
- import StatusErrorIcon from '@cloudera/cuix-core/icons/react/StatusErrorIcon' ;
28
- import { UploadItem } from '../../utils/hooks/useFileUpload/util' ;
20
+ import { RegularFile , FileStatus } from '../../utils/hooks/useFileUpload/types' ;
29
21
import useFileUpload from '../../utils/hooks/useFileUpload/useFileUpload' ;
30
- import {
31
- DEFAULT_ENABLE_CHUNK_UPLOAD ,
32
- FileUploadStatus
33
- } from '../../utils/constants/storageBrowser' ;
22
+ import { DEFAULT_ENABLE_CHUNK_UPLOAD } from '../../utils/constants/storageBrowser' ;
34
23
import { getLastKnownConfig } from '../../config/hueConfig' ;
24
+ import FileUploadRow from './FileUploadRow/FileUploadRow' ;
25
+
26
+ import './FileUploadQueue.scss' ;
35
27
36
28
interface FileUploadQueueProps {
37
- filesQueue : UploadItem [ ] ;
29
+ filesQueue : RegularFile [ ] ;
38
30
onClose : ( ) => void ;
39
31
onComplete : ( ) => void ;
40
32
}
41
33
42
34
const sortOrder = [
43
- FileUploadStatus . Uploading ,
44
- FileUploadStatus . Failed ,
45
- FileUploadStatus . Pending ,
46
- FileUploadStatus . Canceled ,
47
- FileUploadStatus . Uploaded
48
- ] . reduce ( ( acc : Record < string , number > , status : FileUploadStatus , index : number ) => {
35
+ FileStatus . Uploading ,
36
+ FileStatus . Failed ,
37
+ FileStatus . Pending ,
38
+ FileStatus . Cancelled ,
39
+ FileStatus . Uploaded
40
+ ] . reduce ( ( acc : Record < string , number > , status : FileStatus , index : number ) => {
49
41
acc [ status ] = index + 1 ;
50
42
return acc ;
51
43
} , { } ) ;
@@ -64,21 +56,11 @@ const FileUploadQueue: React.FC<FileUploadQueueProps> = ({ filesQueue, onClose,
64
56
onComplete
65
57
} ) ;
66
58
67
- const uploadedCount = uploadQueue . filter (
68
- item => item . status === FileUploadStatus . Uploaded
69
- ) . length ;
59
+ const uploadedCount = uploadQueue . filter ( item => item . status === FileStatus . Uploaded ) . length ;
70
60
const pendingCount = uploadQueue . filter (
71
- item => item . status === FileUploadStatus . Pending || item . status === FileUploadStatus . Uploading
61
+ item => item . status === FileStatus . Pending || item . status === FileStatus . Uploading
72
62
) . length ;
73
63
74
- const statusIcon = {
75
- [ FileUploadStatus . Pending ] : < StatusPendingIcon /> ,
76
- [ FileUploadStatus . Uploading ] : < StatusInProgressIcon /> ,
77
- [ FileUploadStatus . Uploaded ] : < StatusSuccessIcon /> ,
78
- [ FileUploadStatus . Canceled ] : < StatusStoppedIcon /> ,
79
- [ FileUploadStatus . Failed ] : < StatusErrorIcon />
80
- } ;
81
-
82
64
return (
83
65
< div className = "upload-queue cuix antd" >
84
66
< div
@@ -99,32 +81,12 @@ const FileUploadQueue: React.FC<FileUploadQueueProps> = ({ filesQueue, onClose,
99
81
< div className = "upload-queue__list" >
100
82
{ uploadQueue
101
83
. sort ( ( a , b ) => sortOrder [ a . status ] - sortOrder [ b . status ] )
102
- . map ( ( row : UploadItem ) => (
103
- < div key = { `${ row . filePath } __${ row . file . name } ` } className = "upload-queue__list__row" >
104
- < Tooltip
105
- title = { row . status }
106
- mouseEnterDelay = { 1.5 }
107
- className = "upload-queue__list__row__status"
108
- >
109
- { statusIcon [ row . status ] }
110
- </ Tooltip >
111
- < div className = "upload-queue__list__row__name" > { row . file . name } </ div >
112
- < div className = "upload-queue__list__row__size" > { formatBytes ( row . file . size ) } </ div >
113
- { row . status === FileUploadStatus . Pending && (
114
- < Tooltip
115
- title = { t ( 'Cancel' ) }
116
- mouseEnterDelay = { 1.5 }
117
- className = "upload-queue__list__row__close"
118
- >
119
- < CloseIcon
120
- data-testid = "upload-queue__list__row__close-icon"
121
- onClick = { ( ) => onCancel ( row ) }
122
- height = { 16 }
123
- width = { 16 }
124
- />
125
- </ Tooltip >
126
- ) }
127
- </ div >
84
+ . map ( ( row : RegularFile ) => (
85
+ < FileUploadRow
86
+ key = { `${ row . filePath } __${ row . file . name } ` }
87
+ data = { row }
88
+ onCancel = { ( ) => onCancel ( row ) }
89
+ />
128
90
) ) }
129
91
</ div >
130
92
) }
0 commit comments