"use client"; import { useState } from "react"; import { renderCell, type CellRenderer } from "@/components/cell-renderers"; import { ResultsTable } from "@/components/ResultsTable"; import { cellSortValue, type BrowserRow, type ColumnDef } from "@/lib/browser-row"; import { nextSort, sortRows } from "@/lib/sort-rows"; import type { SortState } from "@/lib/types"; export function RecordBrowser({ rows, columns, heading = "Records", renderers, }: { rows: BrowserRow[]; columns: ColumnDef[]; heading?: string; renderers?: Record; }) { const [sort, setSort] = useState({ key: columns[0]?.key ?? "name", dir: 1 }); const ordered = sortRows(rows, sort, cellSortValue); const tableColumns = columns.map((column) => ({ key: column.key, label: column.label, sortable: true, render: (row: BrowserRow) => renderCell(column.key, row, renderers), })); return (

{heading}

row.id} sort={sort} onSort={(key) => setSort((current) => nextSort(current, key))} />
); }