import React from 'react'; import PageLoader from 'components/common/PageLoader/PageLoader'; import { KsqlStreamDescription, KsqlTableDescription } from 'generated-sources'; import { useTableState } from 'lib/hooks/useTableState'; import { SmartTable } from 'components/common/SmartTable/SmartTable'; import { TableColumn } from 'components/common/SmartTable/TableColumn'; import { KsqlDescription } from 'redux/interfaces/ksqlDb'; import { ksqlRowData } from 'components/KsqlDb/List/KsqlDbItem/utils/ksqlRowData'; export enum KsqlDbItemType { Tables = 'tables', Streams = 'streams', } export interface RowsType { tables: KsqlTableDescription[]; streams: KsqlStreamDescription[]; } export interface KsqlDbItemProps { type: KsqlDbItemType; fetching: boolean; rows: RowsType; } export type KsqlDescriptionAccessor = keyof KsqlDescription; export interface HeadersType { Header: string; accessor: KsqlDescriptionAccessor; } export interface KsqlTableState { name: string; topic: string; keyFormat: string; valueFormat: string; isWindowed: string; } export const headers: HeadersType[] = [ { Header: 'Name', accessor: 'name' }, { Header: 'Topic', accessor: 'topic' }, { Header: 'Key Format', accessor: 'keyFormat' }, { Header: 'Value Format', accessor: 'valueFormat' }, { Header: 'Is Windowed', accessor: 'isWindowed' }, ]; const KsqlDbItem: React.FC = ({ type, fetching, rows }) => { const preparedRows = rows[type]?.map(ksqlRowData) || []; const tableState = useTableState(preparedRows, { idSelector: ({ name }) => name, totalPages: 0, }); if (fetching) { return ; } return ( ); }; export default KsqlDbItem;