import { useMemo } from "react"; import { useNavigate } from "react-router-dom"; import { BenchmarkTable } from "../components/benchmark/table/BenchmarkTable"; import { TagFilter } from "../components/TagFilter"; import { useTagFilter } from "../hooks/useTagFilter"; import { BenchmarkData } from "../types"; interface HomeProps { benchmarkData: BenchmarkData | null; } function Home({ benchmarkData }: HomeProps) { const navigate = useNavigate(); // Set up tag filtering for datasets const { selectedTags: selectedDatasetTags, availableTags: availableDatasetTags, filteredItems: filteredDatasets, toggleTag: toggleDatasetTag, } = useTagFilter(benchmarkData?.datasets || []); // Set up tag filtering for algorithms const { selectedTags: selectedAlgorithmTags, availableTags: availableAlgorithmTags, filteredItems: filteredAlgorithms, toggleTag: toggleAlgorithmTag, } = useTagFilter(benchmarkData?.algorithms || []); // Filter benchmark results based on selected tags const filteredResults = useMemo(() => { if (!benchmarkData) return []; let filtered = benchmarkData.results; if (selectedDatasetTags.length > 0) { const datasetNames = filteredDatasets.map((d) => d.name); filtered = filtered.filter((result) => datasetNames.includes(result.dataset), ); } if (selectedAlgorithmTags.length > 0) { const algorithmNames = filteredAlgorithms.map((a) => a.name); filtered = filtered.filter((result) => algorithmNames.includes(result.algorithm), ); } return filtered; }, [ benchmarkData, selectedDatasetTags, selectedAlgorithmTags, filteredDatasets, filteredAlgorithms, ]); return (

Benchmark Results

Comparing compression algorithms for numeric arrays

{benchmarkData && }
); } export default Home;