1- import { DataGrid , DataGridComponents , IconButton , StatusIndicator , TextLink } from '@neo4j-ndl/react' ;
1+ import { DataGrid , DataGridComponents , IconButton , StatusIndicator , TextLink , Typography } from '@neo4j-ndl/react' ;
22import { useEffect , useMemo , useState } from 'react' ;
33import React from 'react' ;
44import {
@@ -13,14 +13,15 @@ import {
1313import { useFileContext } from '../context/UsersFiles' ;
1414import { getSourceNodes } from '../services/GetFiles' ;
1515import { v4 as uuidv4 } from 'uuid' ;
16- import { getFileFromLocal , statusCheck } from '../utils/Utils' ;
16+ import { statusCheck } from '../utils/Utils' ;
1717import { SourceNode , CustomFile , FileTableProps , UserCredentials } from '../types' ;
1818import { useCredentials } from '../context/UserCredentials' ;
1919import { MagnifyingGlassCircleIconSolid } from '@neo4j-ndl/react/icons' ;
2020import CustomAlert from './Alert' ;
21+ import CustomProgressBar from './CustomProgressBar' ;
2122
2223const FileTable : React . FC < FileTableProps > = ( { isExpanded, connectionStatus, setConnectionStatus, onInspect } ) => {
23- const { filesData, setFiles , setFilesData, model } = useFileContext ( ) ;
24+ const { filesData, setFilesData, model } = useFileContext ( ) ;
2425 const { userCredentials } = useCredentials ( ) ;
2526 const columnHelper = createColumnHelper < CustomFile > ( ) ;
2627 const [ columnFilters , setColumnFilters ] = useState < ColumnFiltersState > ( [ ] ) ;
@@ -41,8 +42,8 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
4142 info . row . original ?. fileSource === 's3 bucket'
4243 ? info . row . original ?. source_url
4344 : info . row . original ?. fileSource === 'youtube'
44- ? info . row . original ?. source_url
45- : info . getValue ( )
45+ ? info . row . original ?. source_url
46+ : info . getValue ( )
4647 }
4748 >
4849 { info . getValue ( ) }
@@ -70,6 +71,24 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
7071 filterFn : 'statusFilter' as any ,
7172 size : 200 ,
7273 } ) ,
74+ columnHelper . accessor ( ( row ) => row . uploadprogess , {
75+ id : 'uploadprogess' ,
76+ cell : ( info : CellContext < CustomFile , string > ) => {
77+ if ( parseInt ( info . getValue ( ) ) === 100 ) {
78+ return < Typography variant = 'body-medium' > < StatusIndicator type = "success" /> Uploaded</ Typography >
79+ } else if ( info . row . original ?. status === "Uploading" ) {
80+ return < CustomProgressBar value = { parseInt ( info ?. getValue ( ) ) } > </ CustomProgressBar >
81+ } else if ( info . row . original ?. status === "New" ) {
82+ return < Typography variant = 'body-medium' > < StatusIndicator type = "info" /> Not Started</ Typography >
83+ } else if ( info . row . original ?. status === "Failed" ) {
84+ return < Typography variant = 'body-medium' > < StatusIndicator type = "danger" /> NA</ Typography >
85+ } else {
86+ return < Typography variant = 'body-medium' > < StatusIndicator type = "info" /> Uploaded</ Typography >
87+ }
88+ } ,
89+ header : ( ) => < span > Upload Progress</ span > ,
90+ footer : ( info ) => info . column . id ,
91+ } ) ,
7392 columnHelper . accessor ( ( row ) => row . size , {
7493 id : 'fileSize' ,
7594 cell : ( info : CellContext < CustomFile , string > ) => < i > { ( parseInt ( info ?. getValue ( ) ) / 1000 ) ?. toFixed ( 2 ) } </ i > ,
@@ -166,7 +185,7 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
166185 status :
167186 item . fileSource === 's3 bucket' && localStorage . getItem ( 'accesskey' ) === item ?. awsAccessKeyId
168187 ? item . status
169- : item . fileSource === 'local file' && getFileFromLocal ( ` ${ item . fileName } ` ) != null
188+ : item . fileSource === 'local file'
170189 ? item . status
171190 : item . status === 'Completed' || item . status === 'Failed'
172191 ? item . status
@@ -182,24 +201,13 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
182201 gcsBucket : item ?. gcsBucket ,
183202 gcsBucketFolder : item ?. gcsBucketFolder ,
184203 errorMessage : item ?. errorMessage ,
204+ uploadprogess : item ?. uploadprogress ?? 0
185205 } ) ;
186206 }
187207 } ) ;
188208 }
189209 setIsLoading ( false ) ;
190210 setFilesData ( prefiles ) ;
191- const prefetchedFiles : ( File | null ) [ ] = [ ] ;
192- res . data . data . forEach ( ( item : SourceNode ) => {
193- const localFile = getFileFromLocal ( `${ item . fileName } ` ) ;
194- if ( item . fileName != undefined && item . fileName . length ) {
195- if ( localFile != null ) {
196- prefetchedFiles . push ( localFile ) ;
197- } else {
198- prefetchedFiles . push ( null ) ;
199- }
200- }
201- } ) ;
202- setFiles ( prefetchedFiles ) ;
203211 } else {
204212 throw new Error ( res ?. data ?. error ) ;
205213 }
@@ -209,7 +217,6 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
209217 setIsLoading ( false ) ;
210218 setConnectionStatus ( false ) ;
211219 setFilesData ( [ ] ) ;
212- setFiles ( [ ] ) ;
213220 setShowAlert ( true ) ;
214221 console . log ( error ) ;
215222 }
@@ -218,7 +225,6 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
218225 fetchFiles ( ) ;
219226 } else {
220227 setFilesData ( [ ] ) ;
221- setFiles ( [ ] ) ;
222228 }
223229 } , [ connectionStatus ] ) ;
224230
@@ -259,6 +265,8 @@ const FileTable: React.FC<FileTableProps> = ({ isExpanded, connectionStatus, set
259265 } ;
260266 } , [ ] ) ;
261267
268+
269+
262270 const handleChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
263271 table . getColumn ( 'status' ) ?. setFilterValue ( e . target . checked ) ;
264272 } ;
0 commit comments