import * as React from "react"; import { DetailLink, DetailList, DetailSectionCard, Empty, LocalSystemCells, } from "@/components/detail/DetailList"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import type { AcceleratorPageState, AcceleratorRow, AcceleratorSystemRow, AcceleratorVendorSummaryRow, } from "@/types/local-frontier"; export type AcceleratorPagesProps = { page: AcceleratorPageState; }; function VendorSummaryTable({ rows, }: { rows: readonly AcceleratorVendorSummaryRow[]; }): React.JSX.Element { if (!rows.length) return No accelerator vendors.; return ( Vendor Accelerators Systems {rows.map((row) => ( {row.accelerators} {row.systems} ))}
); } function AcceleratorTable({ rows, }: { rows: readonly AcceleratorRow[]; }): React.JSX.Element { if (!rows.length) return No accelerators.; return ( Accelerator Vendor Systems Max memory Max bandwidth Lowest latest price {rows.map((row) => ( {row.name} {row.systems} {row.maxMemory} {row.maxBandwidth} {row.lowestLatestPrice} ))}
); } function AcceleratorSystemsTable({ rows, }: { rows: readonly AcceleratorSystemRow[]; }): React.JSX.Element { if (!rows.length) return No systems.; return ( System System vendor Count Memory Bandwidth Latest price {rows.map((row) => ( ))}
); } export function AcceleratorPages({ page, }: AcceleratorPagesProps): React.JSX.Element { if (page.emptyMessage) return {page.emptyMessage}; return (
{page.summaryRows.length ? ( ) : null} {page.vendors.length ? ( ) : null} {page.accelerators.length || page.kind !== "model" ? ( ) : null} {page.systems.length || page.kind !== "overview" ? ( ) : null}
); }