@@ -58,6 +58,7 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
58
58
const [ isLoading , setIsLoading ] = useState < boolean > ( false ) ;
59
59
const [ statusFilter , setstatusFilter ] = useState < string > ( '' ) ;
60
60
const [ filetypeFilter , setFiletypeFilter ] = useState < string > ( '' ) ;
61
+ const [ fileSourceFilter , setFileSourceFilter ] = useState < string > ( '' ) ;
61
62
const [ llmtypeFilter , setLLmtypeFilter ] = useState < string > ( '' ) ;
62
63
const skipPageResetRef = useRef < boolean > ( false ) ;
63
64
const [ alertDetails , setalertDetails ] = useState < alertStateType > ( {
@@ -326,21 +327,61 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
326
327
< span >
327
328
< TextLink externalLink href = { info . row . original . source_url } >
328
329
{ info . row . original . fileSource }
329
- </ TextLink > { ' ' }
330
- /
330
+ </ TextLink >
331
331
</ span >
332
- < Typography variant = 'body-medium' > { info . row . original . type } </ Typography >
333
332
</ Flex >
334
333
) ;
335
334
}
336
335
return (
337
336
< div >
338
- < span > { info . row . original . fileSource } / </ span >
337
+ < span > { info . row . original . fileSource } </ span >
338
+ </ div >
339
+ ) ;
340
+ } ,
341
+ header : ( ) => < span > Source</ span > ,
342
+ footer : ( info ) => info . column . id ,
343
+ filterFn : 'fileSourceFilter' as any ,
344
+ meta : {
345
+ columnActions : {
346
+ actions : [
347
+ {
348
+ title : (
349
+ < span className = { `${ fileSourceFilter === 'All' ? 'n-bg-palette-primary-bg-selected' : '' } p-2` } >
350
+ All Sources
351
+ </ span >
352
+ ) ,
353
+ onClick : ( ) => {
354
+ setFileSourceFilter ( 'All' ) ;
355
+ table . getColumn ( 'source' ) ?. setFilterValue ( true ) ;
356
+ } ,
357
+ } ,
358
+ ...Array . from ( new Set ( filesData . map ( ( f ) => f . fileSource ) ) ) . map ( ( t ) => {
359
+ return {
360
+ title : (
361
+ < span className = { `${ t === fileSourceFilter ? 'n-bg-palette-primary-bg-selected' : '' } p-2` } > { t } </ span >
362
+ ) ,
363
+ onClick : ( ) => {
364
+ setFileSourceFilter ( t as string ) ;
365
+ table . getColumn ( 'source' ) ?. setFilterValue ( true ) ;
366
+ skipPageResetRef . current = true ;
367
+ } ,
368
+ } ;
369
+ } ) ,
370
+ ] ,
371
+ defaultSortingActions : false ,
372
+ } ,
373
+ } ,
374
+ } ) ,
375
+ columnHelper . accessor ( ( row ) => row , {
376
+ id : 'type' ,
377
+ cell : ( info ) => {
378
+ return (
379
+ < div >
339
380
< span > { info . row . original . type } </ span >
340
381
</ div >
341
382
) ;
342
383
} ,
343
- header : ( ) => < span > Source/ Type</ span > ,
384
+ header : ( ) => < span > Type</ span > ,
344
385
footer : ( info ) => info . column . id ,
345
386
filterFn : 'fileTypeFilter' as any ,
346
387
meta : {
@@ -349,12 +390,12 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
349
390
{
350
391
title : (
351
392
< span className = { `${ filetypeFilter === 'All' ? 'n-bg-palette-primary-bg-selected' : '' } p-2` } >
352
- All types
393
+ All Types
353
394
</ span >
354
395
) ,
355
396
onClick : ( ) => {
356
397
setFiletypeFilter ( 'All' ) ;
357
- table . getColumn ( 'source ' ) ?. setFilterValue ( true ) ;
398
+ table . getColumn ( 'type ' ) ?. setFilterValue ( true ) ;
358
399
} ,
359
400
} ,
360
401
...Array . from ( new Set ( filesData . map ( ( f ) => f . type ) ) ) . map ( ( t ) => {
@@ -364,7 +405,7 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
364
405
) ,
365
406
onClick : ( ) => {
366
407
setFiletypeFilter ( t as string ) ;
367
- table . getColumn ( 'source ' ) ?. setFilterValue ( true ) ;
408
+ table . getColumn ( 'type ' ) ?. setFilterValue ( true ) ;
368
409
skipPageResetRef . current = true ;
369
410
} ,
370
411
} ;
@@ -457,7 +498,7 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
457
498
footer : ( info ) => info . column . id ,
458
499
} ) ,
459
500
] ,
460
- [ filesData . length , statusFilter , filetypeFilter , llmtypeFilter ]
501
+ [ filesData . length , statusFilter , filetypeFilter , llmtypeFilter , fileSourceFilter ]
461
502
) ;
462
503
463
504
const table = useReactTable ( {
@@ -486,6 +527,12 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
486
527
}
487
528
return row . original . type === filetypeFilter ;
488
529
} ,
530
+ fileSourceFilter : ( row ) => {
531
+ if ( fileSourceFilter === 'All' ) {
532
+ return true ;
533
+ }
534
+ return row . original . fileSource === fileSourceFilter ;
535
+ } ,
489
536
llmTypeFilter : ( row ) => {
490
537
if ( llmtypeFilter === 'All' ) {
491
538
return true ;
@@ -532,14 +579,14 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
532
579
item ?. fileSource === 's3 bucket' && localStorage . getItem ( 'accesskey' ) === item ?. awsAccessKeyId
533
580
? item ?. status
534
581
: item ?. fileSource === 'local file'
535
- ? item ?. status
536
- : item ?. status === 'Completed' || item . status === 'Failed'
537
- ? item ?. status
538
- : item ?. fileSource == 'Wikipedia' ||
539
- item ?. fileSource == 'youtube' ||
540
- item ?. fileSource == 'gcs bucket'
541
- ? item ?. status
542
- : 'N/A' ,
582
+ ? item ?. status
583
+ : item ?. status === 'Completed' || item . status === 'Failed'
584
+ ? item ?. status
585
+ : item ?. fileSource == 'Wikipedia' ||
586
+ item ?. fileSource == 'youtube' ||
587
+ item ?. fileSource == 'gcs bucket'
588
+ ? item ?. status
589
+ : 'N/A' ,
543
590
model : item ?. model ?? model ,
544
591
id : uuidv4 ( ) ,
545
592
source_url : item ?. url != 'None' && item ?. url != '' ? item . url : '' ,
@@ -552,8 +599,8 @@ const FileTable = forwardRef<ChildRef, FileTableProps>((props, ref) => {
552
599
language : item ?. language ?? '' ,
553
600
processingProgress :
554
601
item ?. processed_chunk != undefined &&
555
- item ?. total_chunks != undefined &&
556
- ! isNaN ( Math . floor ( ( item ?. processed_chunk / item ?. total_chunks ) * 100 ) )
602
+ item ?. total_chunks != undefined &&
603
+ ! isNaN ( Math . floor ( ( item ?. processed_chunk / item ?. total_chunks ) * 100 ) )
557
604
? Math . floor ( ( item ?. processed_chunk / item ?. total_chunks ) * 100 )
558
605
: undefined ,
559
606
// total_pages: item?.total_pages ?? 0,
0 commit comments