import React from 'react'; import { KsqlCommandResponse, Table } from 'generated-sources'; const ResultRenderer: React.FC<{ result: KsqlCommandResponse | null }> = ({ result, }) => { if (!result) return null; const isMessage = !!result.message; if (isMessage) return
{result.message}
; const isTable = result.data !== undefined; if (!isTable) return null; const rawTable = result.data as Table; const { headers, rows } = rawTable; const transformedRows = React.useMemo( () => rows.map((row) => row.reduce((res, acc, index) => { res[rawTable.headers[index]] = acc; return res; }, {} as Dictionary) ), [] ); return (
{headers.map((header) => ( ))} {transformedRows.map((row) => ( {headers.map((header) => ( ))} ))} {rows.length === 0 && ( )}
{header}
{row[header]}
No tables or streams found
); }; export default ResultRenderer;