import type { PanelNav, DatasetInfo, OverviewData, ExampleDetailData, RlmIterDetail } from "../types"; import Breadcrumb from "./Breadcrumb"; import OverviewLevel from "./OverviewLevel"; import ExampleDetailLevel from "./ExampleDetailLevel"; import DatasetSelector from "./DatasetSelector"; interface PanelProps { nav: PanelNav; dataset: DatasetInfo | undefined; panelLabel?: string; datasets?: DatasetInfo[]; onNavigate: (nav: PanelNav) => void; onGoUp: () => void; onSwitchDataset?: (id: string) => void; fetchOverview: (dsId: string) => Promise; fetchExampleDetail: (dsId: string, exampleIdx: number) => Promise; fetchIterDetail: ( dsId: string, exampleIdx: number, rlmIter: number ) => Promise; } export default function Panel({ nav, dataset, panelLabel, datasets, onNavigate, onGoUp, onSwitchDataset, fetchOverview, fetchExampleDetail, fetchIterDetail, }: PanelProps) { return (
{/* Panel header */}
{nav.level > 1 && ( )} {panelLabel && ( {panelLabel} )} {panelLabel === "B" && datasets && onSwitchDataset && (
onSwitchDataset(id)} />
)}
{/* Panel content */}
{nav.level === 1 && ( )} {nav.level === 2 && nav.exampleIdx !== undefined && ( )}
); }