eleftherias commited on
Commit
695183e
·
1 Parent(s): d2473b9

Remove unused filters

Browse files
frontend/src/pages/LeaderboardPage/components/Leaderboard/Leaderboard.js CHANGED
@@ -7,100 +7,9 @@ import { useLeaderboard } from "./context/LeaderboardContext";
7
  import { useLeaderboardProcessing } from "./hooks/useLeaderboardData";
8
  import { useLeaderboardData } from "./hooks/useLeaderboardData";
9
 
10
- import LeaderboardFilters from "./components/Filters/Filters";
11
  import LeaderboardTable from "./components/Table/Table";
12
  import SearchBar, { SearchBarSkeleton } from "./components/Filters/SearchBar";
13
  import PerformanceMonitor from "./components/PerformanceMonitor";
14
- import QuickFilters, {
15
- QuickFiltersSkeleton,
16
- } from "./components/Filters/QuickFilters";
17
-
18
- const FilterAccordion = ({ expanded, quickFilters, advancedFilters }) => {
19
- const advancedFiltersRef = React.useRef(null);
20
- const quickFiltersRef = React.useRef(null);
21
- const [height, setHeight] = React.useState("auto");
22
- const resizeTimeoutRef = React.useRef(null);
23
-
24
- const updateHeight = React.useCallback(() => {
25
- if (expanded && advancedFiltersRef.current) {
26
- setHeight(`${advancedFiltersRef.current.scrollHeight}px`);
27
- } else if (!expanded && quickFiltersRef.current) {
28
- setHeight(`${quickFiltersRef.current.scrollHeight}px`);
29
- }
30
- }, [expanded]);
31
-
32
- React.useEffect(() => {
33
- // Initial height calculation
34
- const timer = setTimeout(updateHeight, 100);
35
-
36
- // Resize handler with debounce
37
- const handleResize = () => {
38
- if (resizeTimeoutRef.current) {
39
- clearTimeout(resizeTimeoutRef.current);
40
- }
41
- resizeTimeoutRef.current = setTimeout(updateHeight, 150);
42
- };
43
-
44
- window.addEventListener("resize", handleResize);
45
-
46
- return () => {
47
- clearTimeout(timer);
48
- window.removeEventListener("resize", handleResize);
49
- if (resizeTimeoutRef.current) {
50
- clearTimeout(resizeTimeoutRef.current);
51
- }
52
- };
53
- }, [updateHeight]);
54
-
55
- // Update height when expanded state changes
56
- React.useEffect(() => {
57
- updateHeight();
58
- }, [expanded, updateHeight]);
59
-
60
- return (
61
- <Box
62
- sx={{
63
- position: "relative",
64
- width: "100%",
65
- height,
66
- transition: "height 0.3s ease",
67
- mb: 0.5,
68
- overflow: "hidden",
69
- }}
70
- >
71
- <Box
72
- ref={quickFiltersRef}
73
- sx={{
74
- position: expanded ? "absolute" : "relative",
75
- top: 0,
76
- left: 0,
77
- right: 0,
78
- opacity: expanded ? 0 : 1,
79
- visibility: expanded ? "hidden" : "visible",
80
- transition: "opacity 0.3s ease",
81
- mb: 0,
82
- }}
83
- >
84
- {quickFilters}
85
- </Box>
86
- <Box
87
- ref={advancedFiltersRef}
88
- sx={{
89
- position: !expanded ? "absolute" : "relative",
90
- top: 0,
91
- left: 0,
92
- right: 0,
93
- opacity: expanded ? 1 : 0,
94
- visibility: !expanded ? "hidden" : "visible",
95
- transition: "opacity 0.3s ease",
96
- mt: 0,
97
- }}
98
- >
99
- {advancedFilters}
100
- </Box>
101
- </Box>
102
- );
103
- };
104
 
105
  const Leaderboard = () => {
106
  const { state, actions } = useLeaderboard();
@@ -266,49 +175,6 @@ const Leaderboard = () => {
266
  ]
267
  );
268
 
269
- const memoizedQuickFilters = useMemo(
270
- () => (
271
- <QuickFilters
272
- totalCount={state.models.length}
273
- filteredCount={memoizedFilteredData?.length || 0}
274
- data={memoizedFilteredData}
275
- table={memoizedTable}
276
- />
277
- ),
278
- [state.models.length, memoizedFilteredData, memoizedTable]
279
- );
280
-
281
- const memoizedLeaderboardFilters = useMemo(
282
- () => (
283
- <LeaderboardFilters
284
- data={memoizedFilteredData}
285
- loading={loadingStates.showFiltersSkeleton}
286
- selectedPrecisions={state.filters.precisions}
287
- onPrecisionsChange={onPrecisionsChange}
288
- selectedTypes={state.filters.types}
289
- onTypesChange={onTypesChange}
290
- paramsRange={state.filters.paramsRange}
291
- onParamsRangeChange={onParamsRangeChange}
292
- selectedBooleanFilters={state.filters.booleanFilters}
293
- onBooleanFiltersChange={onBooleanFiltersChange}
294
- onReset={onReset}
295
- />
296
- ),
297
- [
298
- memoizedFilteredData,
299
- loadingStates.showFiltersSkeleton,
300
- state.filters.precisions,
301
- state.filters.types,
302
- state.filters.paramsRange,
303
- state.filters.booleanFilters,
304
- onPrecisionsChange,
305
- onTypesChange,
306
- onParamsRangeChange,
307
- onBooleanFiltersChange,
308
- onReset,
309
- ]
310
- );
311
-
312
  // No need to memoize LeaderboardTable as it handles its own sorting state
313
  const tableComponent = (
314
  <LeaderboardTable
@@ -410,17 +276,6 @@ const Leaderboard = () => {
410
  ) : (
411
  memoizedSearchBar
412
  )}
413
- <Box sx={{ mt: 1 }}>
414
- {loadingStates.showFiltersSkeleton ? (
415
- <QuickFiltersSkeleton />
416
- ) : (
417
- <FilterAccordion
418
- expanded={state.filtersExpanded}
419
- quickFilters={memoizedQuickFilters}
420
- advancedFilters={memoizedLeaderboardFilters}
421
- />
422
- )}
423
- </Box>
424
  </Box>
425
 
426
  <Box
 
7
  import { useLeaderboardProcessing } from "./hooks/useLeaderboardData";
8
  import { useLeaderboardData } from "./hooks/useLeaderboardData";
9
 
 
10
  import LeaderboardTable from "./components/Table/Table";
11
  import SearchBar, { SearchBarSkeleton } from "./components/Filters/SearchBar";
12
  import PerformanceMonitor from "./components/PerformanceMonitor";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  const Leaderboard = () => {
15
  const { state, actions } = useLeaderboard();
 
175
  ]
176
  );
177
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  // No need to memoize LeaderboardTable as it handles its own sorting state
179
  const tableComponent = (
180
  <LeaderboardTable
 
276
  ) : (
277
  memoizedSearchBar
278
  )}
 
 
 
 
 
 
 
 
 
 
 
279
  </Box>
280
 
281
  <Box
frontend/src/pages/LeaderboardPage/components/Leaderboard/components/Filters/SearchBar.js CHANGED
@@ -250,43 +250,6 @@ const SearchBar = ({
250
  </Typography>
251
  </Box>
252
  )}
253
- <Box
254
- onClick={onToggleFilters}
255
- sx={{
256
- display: "flex",
257
- alignItems: "center",
258
- gap: 0.5,
259
- cursor: "pointer",
260
- color:
261
- !loading && hasActiveFilters
262
- ? "primary.main"
263
- : filtersOpen
264
- ? "primary.main"
265
- : "text.secondary",
266
- backgroundColor: filtersOpen
267
- ? alpha(theme.palette.primary.main, 0.04)
268
- : "transparent",
269
- border: "1px solid",
270
- borderColor: filtersOpen ? "primary.100" : "divider",
271
- borderRadius: 1,
272
- padding: "4px 8px",
273
- "&:hover": {
274
- backgroundColor: alpha(theme.palette.primary.main, 0.08),
275
- },
276
- userSelect: "none",
277
- }}
278
- >
279
- <FilterListIcon sx={{ fontSize: "1.2rem" }} />
280
- <Typography
281
- variant="body2"
282
- sx={{
283
- fontWeight: 600,
284
- display: { xs: "none", md: "block" },
285
- }}
286
- >
287
- Advanced Filters
288
- </Typography>
289
- </Box>
290
  <InfoIconWithTooltip
291
  tooltip={UI_TOOLTIPS.SEARCH_BAR}
292
  iconProps={{
 
250
  </Typography>
251
  </Box>
252
  )}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
253
  <InfoIconWithTooltip
254
  tooltip={UI_TOOLTIPS.SEARCH_BAR}
255
  iconProps={{