2023-06-23 10:15:09 +03:00
|
|
|
import { ResizeTable } from 'components/ResizeTable';
|
2023-07-06 17:32:21 +03:00
|
|
|
import { createTableColumnsFromQuery } from 'lib/query/createTableColumnsFromQuery';
|
2023-06-23 10:15:09 +03:00
|
|
|
import { useMemo } from 'react';
|
|
|
|
|
|
|
|
|
|
import { QueryTableProps } from './QueryTable.intefaces';
|
|
|
|
|
|
|
|
|
|
export function QueryTable({
|
|
|
|
|
queryTableData,
|
|
|
|
|
query,
|
|
|
|
|
renderActionCell,
|
2023-07-04 08:24:34 +03:00
|
|
|
modifyColumns,
|
2023-06-23 10:15:09 +03:00
|
|
|
...props
|
|
|
|
|
}: QueryTableProps): JSX.Element {
|
|
|
|
|
const { columns, dataSource } = useMemo(
|
|
|
|
|
() =>
|
|
|
|
|
createTableColumnsFromQuery({
|
|
|
|
|
query,
|
|
|
|
|
queryTableData,
|
|
|
|
|
renderActionCell,
|
|
|
|
|
}),
|
|
|
|
|
[query, queryTableData, renderActionCell],
|
|
|
|
|
);
|
|
|
|
|
|
2023-07-06 17:32:21 +03:00
|
|
|
const filteredColumns = columns.filter((item) => item.key !== 'timestamp');
|
2023-06-23 10:15:09 +03:00
|
|
|
|
2023-07-04 08:24:34 +03:00
|
|
|
const tableColumns = modifyColumns
|
2023-07-06 17:32:21 +03:00
|
|
|
? modifyColumns(filteredColumns)
|
|
|
|
|
: filteredColumns;
|
2023-07-04 08:24:34 +03:00
|
|
|
|
2023-06-23 10:15:09 +03:00
|
|
|
return (
|
|
|
|
|
<ResizeTable
|
2023-07-04 08:24:34 +03:00
|
|
|
columns={tableColumns}
|
2023-06-23 10:15:09 +03:00
|
|
|
tableLayout="fixed"
|
|
|
|
|
dataSource={dataSource}
|
|
|
|
|
scroll={{ x: true }}
|
|
|
|
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
|
|
|
{...props}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
}
|