TableView.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from 'react';
  2. import { KsqlStreamDescription, KsqlTableDescription } from 'generated-sources';
  3. import Table from 'components/common/NewTable';
  4. import { ColumnDef } from '@tanstack/react-table';
  5. interface TableViewProps {
  6. fetching: boolean;
  7. rows: KsqlTableDescription[] | KsqlStreamDescription[];
  8. }
  9. const TableView: React.FC<TableViewProps> = ({ fetching, rows }) => {
  10. const columns = React.useMemo<
  11. ColumnDef<KsqlTableDescription | KsqlStreamDescription>[]
  12. >(
  13. () => [
  14. { header: 'Name', accessorKey: 'name' },
  15. { header: 'Topic', accessorKey: 'topic' },
  16. { header: 'Key Format', accessorKey: 'keyFormat' },
  17. { header: 'Value Format', accessorKey: 'valueFormat' },
  18. {
  19. header: 'Is Windowed',
  20. accessorKey: 'isWindowed',
  21. cell: ({ row }) =>
  22. 'isWindowed' in row.original ? String(row.original.isWindowed) : '-',
  23. },
  24. ],
  25. []
  26. );
  27. return (
  28. <Table
  29. data={rows || []}
  30. columns={columns}
  31. emptyMessage={fetching ? 'Loading...' : 'No rows found'}
  32. enableSorting
  33. />
  34. );
  35. };
  36. export default TableView;