1
- import React , { useEffect , useState } from "react" ;
2
- import { useNavigate , Link , useSearchParams } from "react-router-dom" ;
1
+ import React , { useState } from "react" ;
2
+ import { useNavigate , Link } from "react-router-dom" ;
3
3
import { useMephistoReview } from "../shims/mephisto-review-hook" ;
4
4
import {
5
5
Button ,
@@ -27,14 +27,15 @@ import "./CollectionView.scss"
27
27
import FileUploadButton from "./PredictionsUpload/PredictionsUploadButton" ;
28
28
import Footer from "../Footer" ;
29
29
import SearchBox from "./SearchBox/SearchBox" ;
30
+ import { benchmark_values } from "./FilterBox/filterData" ;
30
31
31
32
32
33
function CollectionView ( {
33
34
itemRenderer = JSONItem ,
34
35
collectionRenderer : CollectionRenderer = GridCollection ,
35
36
} ) {
36
- const [ searchParams , ] = useSearchParams ( ) ;
37
- const [ page , setPage ] = useStateWithUrlParam ( 'p' , '1' , parseInt ) ;
37
+ const [ query , setQueryAndURL , setQuery , setQueryURL ] = useStateWithUrlParam ( 'q' , '' ) ;
38
+ const [ page , setPage ] = useStateWithUrlParam ( 'p' , 1 ) ;
38
39
const [ filteredData , setFilteredData ] = useState ( [ ] ) ;
39
40
const [ selectedTab , setSelectedTab ] = useStateWithUrlParam ( 't' , 'browse' ) ;
40
41
const navigate = useNavigate ( ) ;
@@ -54,10 +55,6 @@ function CollectionView({
54
55
'analyze' : 'Analyzing' ,
55
56
}
56
57
57
- const onImFeelingLuckyClick = ( ) => {
58
- navigate ( `/${ filteredData [ Math . floor ( Math . random ( ) * filteredData . length ) ] . video_uid } ?${ searchParams . toString ( ) } ` )
59
- }
60
-
61
58
return (
62
59
< >
63
60
< VersionHeader />
@@ -74,10 +71,10 @@ function CollectionView({
74
71
</ NavbarGroup >
75
72
< NavbarGroup align = { Alignment . CENTER } >
76
73
{ /* <SearchBox /> */ }
77
- < FilterBox filterData = { filterData } setFilteredData = { setFilteredData } />
78
- < CSVLink data = { gen_export_csv ( filteredData ) } target = "_blank" filename = { 'ego4d_viz_filtered_videos' } >
74
+ < FilterBox filterData = { filterData } setFilteredData = { setFilteredData } { ... { query , setQueryAndURL , setQuery , setQueryURL } } />
75
+ { /* <CSVLink data={gen_export_csv(filteredData)} target="_blank" filename={'ego4d_viz_filtered_videos'} >
79
76
<Button align={ALIGN_RIGHT} style={{ flex: '1 1 auto', margin: '7px' }}>Export Video UIDs</Button>
80
- </ CSVLink >
77
+ </CSVLink> */ }
81
78
{ /* <FileUploadButton /> */ }
82
79
</ NavbarGroup >
83
80
</ div >
@@ -89,7 +86,25 @@ function CollectionView({
89
86
total_duration_seconds + ' seconds'
90
87
} </ span > .
91
88
92
- { /* <Button intent={Intent.PRIMARY} align={ALIGN_RIGHT} style={{ flex: '1 1 auto', margin: '7px' }} onClick={onImFeelingLuckyClick}>Random Video</Button> */ }
89
+ { false &&
90
+ benchmark_values . map ( ( benchmark ) => {
91
+ let snippet = `benchmarks include ${ benchmark } ` ;
92
+ return < span
93
+ className = { 'nav-benchmark-opt' + ( query . includes ( snippet ) ? ` tag-${ benchmark } active` : '' ) }
94
+ onClick = { ( ) => {
95
+ let new_query = query . includes ( snippet )
96
+ ? query . replace ( new RegExp ( `(( AND| OR)\\s*${ snippet } |${ snippet } \\s*(AND |OR )|\\s*${ snippet } \\s*)` ) , '' )
97
+ : query . trim ( ) . length > 0
98
+ ? `${ query } ${ query . includes ( 'benchmarks include' ) ? 'OR' : 'AND' } ${ snippet } `
99
+ : snippet ;
100
+
101
+ setQueryAndURL ( new_query . replace ( new RegExp ( '\\s+' , 'g' ) , ' ' ) ) ;
102
+ } }
103
+ onKeyDown = { ( e ) => e . preventDefault ( ) }
104
+ role = 'button'
105
+ tabIndex = { - 1 } > { benchmark } </ span >
106
+ } )
107
+ }
93
108
</ div >
94
109
</ Navbar >
95
110
< main id = "all-item-view-wrapper" >
0 commit comments