kafka-ui/kafka-ui-react-app/src/components/Topics/Topic/ConsumerGroups/TopicConsumerGroups.tsx
Oleg Shur 8d3f098385
Use back link instead of breadcrumbs (#2430)
* Use back link instead of breadcrumbs

* Unify topic pages

* Unify topic page actions

* fix

* Remove unused test
2022-08-15 14:08:10 +03:00

66 lines
2.2 KiB
TypeScript

import React from 'react';
import { Link } from 'react-router-dom';
import { clusterConsumerGroupsPath, RouteParamsClusterTopic } from 'lib/paths';
import { Table } from 'components/common/table/Table/Table.styled';
import TableHeaderCell from 'components/common/table/TableHeaderCell/TableHeaderCell';
import { Tag } from 'components/common/Tag/Tag.styled';
import { TableKeyLink } from 'components/common/table/Table/TableKeyLink.styled';
import getTagColor from 'components/common/Tag/getTagColor';
import useAppParams from 'lib/hooks/useAppParams';
import { useTopicConsumerGroups } from 'lib/hooks/api/topics';
const TopicConsumerGroups: React.FC = () => {
const { clusterName, topicName } = useAppParams<RouteParamsClusterTopic>();
const { data: consumerGroups } = useTopicConsumerGroups({
clusterName,
topicName,
});
return (
<Table isFullwidth>
<thead>
<tr>
<TableHeaderCell title="Consumer Group ID" />
<TableHeaderCell title="Num Of Members" />
<TableHeaderCell title="Messages Behind" />
<TableHeaderCell title="Coordinator" />
<TableHeaderCell title="State" />
</tr>
</thead>
<tbody>
{consumerGroups?.map((consumer) => (
<tr key={consumer.groupId}>
<TableKeyLink>
<Link
to={`${clusterConsumerGroupsPath(clusterName)}/${
consumer.groupId
}`}
>
{consumer.groupId}
</Link>
</TableKeyLink>
<td>{consumer.members}</td>
<td>{consumer.messagesBehind}</td>
<td>{consumer.coordinator?.id}</td>
<td>
{consumer.state && (
<Tag color={getTagColor(consumer.state)}>{`${consumer.state
.charAt(0)
.toUpperCase()}${consumer.state
.slice(1)
.toLowerCase()}`}</Tag>
)}
</td>
</tr>
))}
{(!consumerGroups || consumerGroups.length === 0) && (
<tr>
<td colSpan={10}>No active consumer groups</td>
</tr>
)}
</tbody>
</Table>
);
};
export default TopicConsumerGroups;