in src/components/Database/DataViewer/NodeTabularDisplay.tsx [59:103]
function NodeTabularDisplay$({ query, hasMoreRows, onLoadMore }) {
const [table, setTable] = useState<Table>({
type: TableType.Array,
headers: [],
rows: [],
});
const raiseOnLoadMore = () => onLoadMore && onLoadMore();
useEffect(() => {
(async () => {
setTable(await buildTable(query));
})();
}, [query]);
return (
<DataTable className="NodeTabularDisplay">
<DataTableContent>
<DataTableHead>
<DataTableRow>
{table.headers.map((header, i) => (
<DataTableHeadCell key={i}>
<Typography use="body1">{header}</Typography>
</DataTableHeadCell>
))}
</DataTableRow>
</DataTableHead>
<DataTableBody>
{table.rows.map((row, idx) => (
<DataTableRow key={idx}>
{table.headers.map((header, i) =>
getColumnValue(table, row, header, i, query.ref)
)}
</DataTableRow>
))}
</DataTableBody>
{hasMoreRows && (
<DataTableHead>
<DataTableRow>
<DataTableCell colSpan={table.headers.length}>
<Button onClick={() => raiseOnLoadMore()}>Load More</Button>
</DataTableCell>
</DataTableRow>
</DataTableHead>
)}