import { Dataset, BenchmarkData } from "../../types"; import { useEffect, useRef, useState } from "react"; import TimeseriesView from "./TimeseriesView"; import { BaseContent } from "../shared/BaseContent"; import { LossyAlgorithmSelector } from "./LossyAlgorithmSelector"; import { ComparisonModeSelector } from "./ComparisonModeSelector"; import { ReconstructedDataInfo, ComparisonMode } from "../../types/comparison"; import "../shared/ContentStyles.css"; interface DatasetContentProps { dataset: Dataset; benchmarkData: BenchmarkData | null; chartData: Array<{ algorithmOrDataset: string; compression_ratio: number; reference_compression_ratio: number | null; encode_speed: number; decode_speed: number; rmse?: number; tags: string[]; }>; } export const DatasetContent = ({ dataset, benchmarkData, chartData, }: DatasetContentProps) => { const containerRef = useRef(null); const [containerWidth, setContainerWidth] = useState(1200); const [reconstructedInfo, setReconstructedInfo] = useState(null); const [comparisonMode, setComparisonMode] = useState("original"); useEffect(() => { if (!containerRef.current) return; const resizeObserver = new ResizeObserver((entries) => { for (const entry of entries) { setContainerWidth(entry.contentRect.width - 32); } }); resizeObserver.observe(containerRef.current); return () => { resizeObserver.disconnect(); }; }, []); const downloadSection = dataset.data_url_npy || dataset.data_url_raw ? (
Download: {dataset.data_url_npy && ( NPY )} {dataset.data_url_raw && ( RAW )}
) : null; const timeseriesSection = (
{benchmarkData && ( <> { setReconstructedInfo(info); if (info === null) { setComparisonMode("original"); } }} /> {reconstructedInfo && ( )} )}
); return ( ); };